我正在尝试编写一个函数来计算列的平均值。该函数具有参数directory和column_name。但是,我不断收到错误“参数不是数字或逻辑:返回NA”:
pollutantmean <- function(directory, pollutant) {
directoryVal <- directory
pollutantVal <- pollutant
pollutantData <- read.csv(directoryVal)
meanVal <- mean(pollutantData$pollutantVal, na.rm = TRUE)
}
我叫它:
pollutantmean("001.csv", "nitrate")
“硝酸盐”是其中一个列名。
请注意以下内容有效,所以我不确定为什么它在我的函数中不起作用:
mydata <- read.csv("001.csv")
mean(mydata$nitrate, na.rm = TRUE)
请帮忙。谢谢。
答案 0 :(得分:3)
我想补充一下。 它应该是
meanVal <- mean(pollutantData[,pollutantVal], na.rm = TRUE)
请注意,
之前的pollutantVal
,因为pollutantVal
是一列,需要将其编入索引。
答案 1 :(得分:2)
您应该尝试meanVal <- mean(pollutantData[pollutantVal], na.rm = TRUE)
,确实您的数据框pollutantData
没有任何列调用pollutantVall
,因此pollutantData$pollutantVal
为NULL
{{1}} }。如果要使用字符访问数据框列,则必须使用方括号。