我觉得这应该很容易,我已经看过互联网,但我不断收到错误消息。我过去做过很多分析,但对 R 和编程很陌生。
我有一个非常基本的函数来计算 x 列数据的平均值:
columnmean <-function(y){
nc <- ncol(y)
means <- numeric(nc)
for(i in 1:nc) {
means[i] <- mean(y[,i])
}
means
}
我在 RStudio 中并使用包含的“空气质量”数据集对其进行测试。当我加载 AQ 数据集并运行我的函数时:
data("airquality")
columnmean(airquality)
我回来了:
NA NA 9.957516 77.882353 6.993464 15.803922
因为 AQ 中的前两个变量中有 NA。克,酷。我想抑制 NA,以便 R 将忽略它们并运行该函数。
我正在阅读我可以使用 na.rm=TRUE 指定它,例如:
columnmean(airquality, na.rm = TRUE)
但是当我这样做时,我收到一条错误消息:
“列均值错误(空气质量,na.rm = TRUE):未使用的参数(na.rm = TRUE)”
我正在阅读所有我只需要包含 na.rm = TRUE 的地方,该函数将运行并忽略 NA 值......但我不断收到这个错误。我也尝试过 use = "complete" 和我能找到的任何其他东西。
两个警告:
我知道我可以使用 is.na 创建一个向量,然后对数据进行子集化,但我不想要那个额外的步骤,我只希望它运行函数并忽略丢失的数据。
我也知道我可以在函数中指定忽略或不忽略,但我想要一种方法来选择忽略/不忽略,在逐个动作的基础上,而不是让它成为函数本身的一部分.
帮助表示赞赏。谢谢大家。