在R中循环读取多个文件时出错

时间:2018-05-31 22:08:12

标签: r loops for-loop mean read.csv

所以,我在R中创建一个循环,读取名为“specdata”的目录中的多个csv文件,然后告诉你这些文件中特定列的平均值。此函数在下一个参数中表示,您指定的参数是这些文件所在的目录,您想要计算的列,以及ID序列,它根据de对象告诉您要读取多少个文件数字代表throudh子集[]

之前我对这个函数进行了查询,它已经解决了,现在,它可以工作,并给出了结果。但它给出了一个不正确的,它总是给NA或NAN,当它应该给出一个数字。

    pollutantmean <- function(directory,pollutant,id) {
  for (i in id) {archivo  <-  list.files(directory,full.names = TRUE)
  datapollution <- rbind(read.csv(archivo[i],header = TRUE))
  datamatrix <- data.matrix(datapollution)
  resultmean <- mean(datamatrix[pollutant],na.rm = TRUE)}
  print(resultmean)}

为什么不起作用?我的理论是,我正在适应rbind错误。

1 个答案:

答案 0 :(得分:0)

由于缺少示例数据/代码,很难提供更具体的帮助,但我发现您的代码存在一些问题。

  1. 无需在Formatting.None循环中重复list.file
  2. 事实上,这里不需要for循环,而且执行

    之类的操作会更快
    for
  3. PS。为了获得SO的最大帮助,最好提供minimal & reproducible example including sample data