从在线搜索和在此群组中,似乎这应该有效:
> 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
我有点心慌。
答案 0 :(得分:4)
您的数据最有可能属于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
但是,如果您的数据属于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
答案 1 :(得分:0)
我不知道R是区分大小写的。
理查德是对的,我本应该使用臭氧,而不是臭氧。感谢大家的帮助。
抱歉,我不知道如何提供可重现的数据。在这种情况下本来可以做什么?