R中的平均函数(处理因子)

时间:2013-12-09 17:41:43

标签: r

所以我有这个载体:

x
 [1] 76 89 78 50 84 56 29 53 32 68
112 Levels: 0 1 10 100 101 102 103 104 105 106 107 108 109 11 110 12 13 ... eta

为什么会这样?

[1] NA
Warning message:
In mean.default(x) : l'argomento non è numerico o logico: restituisco NA

3 个答案:

答案 0 :(得分:6)

看起来x是一个因素。将因子转换为数字时有一个问题。你需要使用:

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

如果您没有先转换为角色,您将获得基本因素代码。

答案 1 :(得分:0)

看起来x是一个分类变量 - 请尝试

mean(as.numeric(as.character(x)))

(根据詹姆斯指出,如果没有as.character,你会得到因子代码:

x <- as.factor(10:20)
as.numeric(x)
[1]  1  2  3  4  5  6  7  8  9 10 11

离开na.rm=TRUE,因为虽然更安全,却没有引起问题)

答案 2 :(得分:0)

除了更改为数值之外,当您使用mean函数时,请确保指定na.rm=TRUE,以防向量中包含NA值。否则,它会显示您看到的警告。