在函数中有这个:
pollutantmean <- function(){
xframe <- data.frame()
list <- list.files()
listlen <- length(list.files)
for (i in listlen){
xframe<- rbind(xframe,read.csv(list[i]))
}
subid <- xframe[which(xframe[,'ID']== 3),]
mean(subid$nitrate, na.rm = TRUE)
}
如果我在控制台中运行单独的行,那么
但是在R的干净实例中输入并运行该函数:
> pollutantmean()
[1] NaN
然后当我尝试检查时:
> xframe
Error: object 'xframe' not found
谢谢, 比利
答案 0 :(得分:1)
您要求的是xframe
函数本地的对象(pollutantmean
)。它在.GlobalEnv环境中不存在(但仅存在于函数内部),因此错误。阅读the section on lexical scope from Hadley Wickham's book可能对您有用。
答案 1 :(得分:0)
也许有更多的错误,但我立刻看到的是,当你建立for
循环时,你并没有说出你的想法。您确定要获得的序列是:for (i in 1:listlen)
看看这个例子:
> for(i in 5) print("Stackoverflow")
[1] "Stackoverflow"
>
> for(i in 1:5) print("Stackoverflow")
[1] "Stackoverflow"
[1] "Stackoverflow"
[1] "Stackoverflow"
[1] "Stackoverflow"
[1] "Stackoverflow"
length
只有一个数字,你把自己放在我的代码的第一个例子中,这不是你想要的。
您的代码中可能还有其他错误。