【发布时间】:2017-08-31 10:19:25
【问题描述】:
我觉得这应该很容易,我在互联网上查看过 x ,但我不断收到错误消息。我过去做过很多分析,但对 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 创建一个向量,然后对数据进行子集化,但我不想要那个额外的步骤,我只想让它运行函数并忽略丢失的数据。
我也知道我可以在函数中指定忽略或不忽略,但我想要一种方法来选择忽略/不忽略,在逐个动作的基础上,而不是让它成为其中的一部分函数本身。
感谢您的帮助。谢谢大家。
【问题讨论】:
-
你必须在
mean中包含na.rm=TRUE -
R 中已经有一个内置函数:
colMeans(airquality, na.rm=TRUE) -
@MrFlick - 是的,我知道,我正在自学用 R 编写函数,所以我选择了一个非常简单的,我知道我可以轻松检查。
标签: r function missing-data na.rm