参数不是数字或逻辑:在R中返回NA

时间:2014-11-11 01:32:51

标签: r numeric na

我正在尝试编写一个函数来计算列的平均值。该函数具有参数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)

请帮忙。谢谢。

2 个答案:

答案 0 :(得分:3)

我想补充一下。 它应该是

meanVal <- mean(pollutantData[,pollutantVal], na.rm = TRUE)

请注意,之前的pollutantVal,因为pollutantVal是一列,需要将其编入索引。

答案 1 :(得分:2)

您应该尝试meanVal <- mean(pollutantData[pollutantVal], na.rm = TRUE),确实您的数据框pollutantData没有任何列调用pollutantVall,因此pollutantData$pollutantValNULL {{1}} }。如果要使用字符访问数据框列,则必须使用方括号。