首页 文章

无效'length'参数错误

提问于
浏览
-2

我想计算一个目录中所有csv的列的平均值,但是当我运行该函数时,它给出了我的错误

“数字中的错误(nc):无效的'长度'参数” .

我相信CSV文件有n / a值,但它不应该影响计算列数?

pollutantmean <- function(directory, pollutant, id =1:332, removeNA = TRUE){
          nc <- ncol(pollutant)
          means <- numeric(nc)
          for(i in 1:nc){
            means[i] <- mean(pollutant[, i], na.rm = removeNA)
          }
          means
}

所以这是我的更新版本 . 我将R设置为使用“lapply”将所有.csv读入一个文件 . 所有这些csv文件都具有从001到1xxx等的一致名称 . 所以我将id设置为001到何时 .

files <- list.files(pattern = ".csv")
directory <- lapply(files, read.csv)
pollutantmean <- function(directory, pollutant, id =1:332, removeNA = TRUE){
  nc <- ncol(pollutant)

  means <- numeric(nc, na.rm=removeNA)

  for(i in 1:nc){

    means[i] <- mean(pollutant[, i], na.rm = removeNA)
  }
  means
}

我试图用一个文件中的所有csv计算整个目录中污染物的平均值 . 我打算使用"na.rm = removeNA"删除所有缺失的值 . 但它给了我 Error in numeric(nc, na.rm = removeNA) : unused argument (na.rm = removeNA) 的错误

1 回答

  • 0
    pollutantmean <- function(directory, pollutant, id = 1:332) {
      files_list <- list.files(directory, full.names = TRUE) #creats list of files and the csv files are sitting in the directory
      dat <- data.frame() #creates empty data frame
      for(i in id){
        dat<- rbind(dat,read.csv(files_list[i])) #combin all the csv data together
      }
      good <- complete.cases(dat) #remove all the NA values from csv data set
      mean(dat[good, pollutant], na.rm = TRUE) # finally calculate mean
    }
    

    这是我的答案

相关问题