是我想要创建的功能:
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
。
我不知道自己做错了什么,而且我不明白为什么我不能为sum
和pollutmean
获取相同类型的错误。
答案 0 :(得分:3)
正如我在评论中所说,您需要在调用函数内部或外部初始化变量every
。
此外,您不会收到sum
的错误,因为sum
是R中的一个函数。如果every
已定义,您将获得错误,因为你无法以这种方式对待函数。您可以使用不同的值重载sum
,但由于您没有将sum
定义为另一个变量,因此它会假定它是函数sum
。
此外,pollutant(j, )
无法使用 - 我认为您需要pollutant[j, ]
。