全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1705 3
2015-05-13
写在前面:本人新手,做题时遇到了些疑惑,找过相关书籍和资料,没能解决,所以来论坛问问你们。



问题
构造一个函数 f <- function(directory,pollutant,id),
其中directory是长度为1的字符向量,指明CSV文件的位置
       pollutant是长度为1的字符向量,指明CSV文件中数据的名称(pollutant1和pollutant2)
       id是正整数向量,指明CSV文件序号
       共有CSV文件100个,分别命名为001.csv、002.csv、...、100.csv
       每个CSV文件pollutant1和pollutant2下都有很多数据(包含缺失值)
那我该如何构造一个这样的函数计算相应文件中相应pollutan的均值呢?即如何构造“f”从“directory”参数中指定的目录下读取数据,并返回pollutant的平均值,忽略代码为NA的任何缺失值。



我构造的函数:
pollutantmean <- function(directory, pollutant, id = 1:100) {
  setwd("C:\\Users\\ruochu\\Desktop\\Coursera\\R Programming")     #也不知道能不能在函数中更改工作目录
  a <- list.files("specdata")                                                       #specdata是存放CSVs文件的文件夹,且里面只有这些文件
  dir <- paste("./specdata/",a,sep="")
  n <- length(id)
  merge.data <- read.csv(file = dir[id[1]], header=T, sep=",")
  if (n >= 2) {
    for (i in id[2]:id[n]) {
      data <- read.csv(file = dir, header=T, sep=",")
      merge.data <- rbind(merge.data,data)
    }  
  }
  if ("pollutant" == "pollutant1“) {
  mean(merge.data[,2],na.rm=TRUE)                                      #CSV文件中第二列即pollutant1
  } else {
  mean(merge.data[,3],na.rm=TRUE)                                      #CSV文件中第三列即pollutant1
  }
}


可是问题在于我并没有用到directory
比如要求specdata中第70、71、72号文件中polltant2的均值,即pollutantmean("specdata", "polltant2", 70:72)
题目要求其指明CSV文件的位置,我却是直接将CSV的位置即specdata文件夹给用进去了,所以我比较纠结这个directory参数到底如何指明想要的目录,请路过的们帮忙解答,谢谢!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-5-13 18:33:53
望路过的帮忙解答下,谢谢。本人刚接触R语言,期待到大家的指导
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-13 18:49:16
人工置顶
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-13 19:34:55
哭晕了 快来帮帮吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群