获取错误“找不到对象”

时间:2014-10-22 21:31:12

标签: r function

下面的

是我想要创建的功能:

pollutantmean <- function(directory, pollutant, id = 1:332) {
    directory <- "specdata"      
    pollutant <- c("sulfate", "nitrate")
    na.rm = TRUE
    pollutmean <- sum/every
    pollutmean


  for(i in seq_along(id)) {
    read.csv(id.csv)
      for(j in seq_len(ncol(pollutant))) {
        every <- every + 1
        sum <- sum + pollutant(j, )
      }
    }
}

当我运行以下代码时,收到以下错误消息:

source("pollutantmean.R")
pollutantmean("specdata", "sulfate", 1:10)
## Error in pollutantmean("specdata", "sulfate", 1:10) : 
##  object 'every' not found

我正在尝试创建一个变量every,以便在for()循环每次循环时枚举,但错误消息告诉我找不到对象every。 我不知道自己做错了什么,而且我不明白为什么我不能为sumpollutmean获取相同类型的错误。

1 个答案:

答案 0 :(得分:3)

正如我在评论中所说,您需要在调用函数内部或外部初始化变量every

此外,您不会收到sum的错误,因为sum是R中的一个函数。如果every已定义,您获得错误,因为你无法以这种方式对待函数。您可以使用不同的值重载sum,但由于您没有将sum定义为另一个变量,因此它会假定它是函数sum

此外,pollutant(j, )无法使用 - 我认为您需要pollutant[j, ]