为什么我不能接受这个意思?

时间:2014-09-15 21:51:27

标签: r mean factors

我有这些数据。

str(x1);
'data.frame':   163 obs. of  4 variables:
$ Cage    : int  4055 4055 4055 4055 4055 4055 4055 4055 4055 4055 ...
$ LineName: int  1 7 2 8 3 9 4 10 5 11 ...
$ Result  : Factor w/ 2 levels "2","1": 2 2 2 1 1 2 1 2 2 1 ...
$ Pool    : Factor w/ 1 level "High": 1 1 1 1 1 1 1 1 1 1 ...
- attr(*, "na.action")=Class 'omit'  Named int [1:45] 83 165 173 176 186 187 188 189 190 191 ...
.. ..- attr(*, "names")= chr [1:45] "83" "165" "173" "176" ..

我想取x1 $ Result的意思。当我这样做时,我明白了。

mean(x1$Result)
[1] NA
Warning message:
In mean.default(x1$Result) : argument is not numeric or logical: returning NA

我能做些什么来获得意思?我认为这与因子/水平有关。

1 个答案:

答案 0 :(得分:1)

评论提示了一个很好的解决方案,但是你在x1 $结果中有一个因素的原因可能更有意思。

将某些内容转换为data.frame字符串时,默认情况下将其视为因子,而不是强制转换为数字。当您读入数据时,x1 $ Pool列具有字符类型。矩阵只包含一种数据类型,因此整个矩阵都转换为字符矩阵。将其转换为data.frame将导致每列成为因子而不是数字。