全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5300 2
2014-06-09
cousera r programming 第二周作业
我的程序如下:
pollutantmean <- function(directory, pollutant, id = 1:332) {
  directory<-"D:\\specdata"
  files <- dir(directory, pattern="*.csv", full.names=T)
  data<-data.frame()
  for (i in id){
    data<-rbind(data,read.csv(files),header=TRUE)
      }
  if (pollutant == "sulfate") {
    mean <- mean(data$sulfate, na.rm = TRUE)
  }
  if (pollutant == "nitrate") {
    mean <- mean(data$nitrate, na.rm = TRUE)
  }
  print(mean)
}

报错:
Warning messages:1: In `[<-.factor`(`*tmp*`, ri, value = TRUE) :  invalid factor level, NA generated2: In `[<-.factor`(`*tmp*`, ri, value = TRUE) :  invalid factor level, NA generated3: In `[<-.factor`(`*tmp*`, ri, value = TRUE) :  invalid factor level, NA generated4: In `[<-.factor`(`*tmp*`, ri, value = TRUE) :  invalid factor level, NA generated5: In `[<-.factor`(`*tmp*`, ri, value = TRUE) :  invalid factor level, NA generated6: In `[<-.factor`(`*tmp*`, ri, value = TRUE) :  invalid factor level, NA generated7: In `[<-.factor`(`*tmp*`, ri, value = TRUE) :  invalid factor level, NA generated8: In `[<-.factor`(`*tmp*`, ri, value = TRUE) :  invalid factor level, NA generated9: In `[<-.factor`(`*tmp*`, ri, value = TRUE) :  invalid factor level, NA generated10: In `[<-.factor`(`*tmp*`, ri, value = TRUE) :  invalid factor level, NA generated
这个是哪行有问题??
谢谢

二维码

扫码加我 拉你入群

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

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

全部回复
2014-6-9 19:51:16
哎,真不知道你咋写的,用debug或者traceback查看吧
而且directory要穿参数,你居然在里面给赋值了

这是我写的
pollutantmean <- function(directory, pollutant, id = 1:332) {
    ## 'directory' is a character vector of length 1 indicating
    ## the location of the CSV files
    datafiles <- mapply(function(x) paste(directory,'/',sprintf("%03d",x),'.csv',sep=""),id)
    datas <- lapply(datafiles,read.csv)
   
   
    ## 'pollutant' is a character vector of length 1 indicating
    ## the name of the pollutant for which we will calculate the
    ## mean; either "sulfate" or "nitrate".
   
    ## 'id' is an integer vector indicating the monitor ID numbers
    ## to be used
   
    ## Return the mean of the pollutant across all monitors list
    ## in the 'id' vector (ignoring NA values)
    polluts <- unlist(lapply(datas,function(x) x[pollutant]))
    mean(polluts,na.rm=T)
}
二维码

扫码加我 拉你入群

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

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

2014-6-10 09:06:44
windblood 发表于 2014-6-9 19:51
哎,真不知道你咋写的,用debug或者traceback查看吧
而且directory要穿参数,你居然在里面给赋值了
谢谢 我知道错在哪里
二维码

扫码加我 拉你入群

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

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

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

分享

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