【发布时间】:2020-03-08 23:12:38
【问题描述】:
我有一个名为 'directory' 的数据框,它有 4 列,即 a、b、c、d。我需要根据输入找到 b 列或 c 列的平均值。
b 列和 c 列都有NA 和数值。
TotalMean<- function(directory, pollutant = "b", id = 1:10)
{
mean(subset(directory, ID= id, select = directory[[pollutant]]), na.rm = TRUE)
}
TotalMean<- function(directory, pollutant = "b", id = 1:10)
{
mean(subset(directory, ID= id, select = directory$pollutant), na.rm = TRUE)
}
TotalMean<- function(directory, pollutant = "b", id = 1:10)
{
mean(subset(directory, ID= id, select = directory[,pollutant]), na.rm = TRUE)
}
上面提到的所有功能我都试过了。但是它给了我以下错误。
由于我是 R 编程新手,我不确定为什么会这样。任何帮助将不胜感激。
提前致谢
【问题讨论】:
-
对不起,忘了提及错误。以下是错误。
[.data.frame(directory, , directory$b) 中的错误:选择了未定义的列 -
colMeans不适合您的问题吗?你能提供你的数据集的reproducible example 吗? -
我使用 colMeans 也遇到同样的错误
-
你能提供你用来计算
colMeans的代码吗? (以及可重复的示例;)) -
您错误地使用了
subset。您根本不能那样使用它(即,以编程方式将变量传递给它的subset和select参数)。阅读help("subset")中的警告。然后使用help("[")中详述的子集。