在 R 中尝试计算包含 NA 的列的平均值时出错

Getting error in R trying to calculate mean on column that contains NA

从网上和本组中搜索,这似乎是可行的:

> mean(r_lab$ozone, na.rm=TRUE)

然而,我得到的是:

[1] NA
Warning message:
In mean.default(r_lab$ozone, na.rm = TRUE) :
  argument is not numeric or logical: returning NA

这是数据集中该列的内容:

> r_lab$Ozone
 [1]  41  36  12  18  NA  28  23  19   8  NA   7  16  11  14
[15]  18  14  34   6  30  11   1  11   4  32  NA  NA  NA  23

我有点慌张。

您的数据很可能是 class character,而不是数字。

看看这些例子:

# Set up some numeric data
x <- c(41, 36, 12, 18, NA, 28, 23, 19,  8, NA,  7, 16, 11, 14, 18, 14, 34,  6, 30, 11,  1, 11,  4, 32, NA, NA, NA, 23)

# Clearly taking the mean on this will work
 mean(x, na.rm = TRUE)

[1] 18.13043

但是,如果您的数据是 class character,那么您会收到报告的错误消息:

y <- as.character(x)
mean(y, na.rm = TRUE)

[1] NA
Warning message:
In mean.default(y, na.rm = TRUE) :
  argument is not numeric or logical: returning NA

所以您应该先将数据转换为数值,然后取平均值:

mean(as.numeric(x), na.rm = TRUE)

[1] 18.13043

我不知道 R 区分大小写。

Richard 是对的,我应该一直使用 Ozone,而不是臭氧。感谢大家的帮助。

抱歉,我不知道如何提供可重现的数据。在这种情况下,什么就足够了?