我有这些数据。
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
我能做些什么来获得意思?我认为这与因子/水平有关。
答案 0 :(得分:1)
评论提示了一个很好的解决方案,但是你在x1 $结果中有一个因素的原因可能更有意思。
将某些内容转换为data.frame字符串时,默认情况下将其视为因子,而不是强制转换为数字。当您读入数据时,x1 $ Pool列具有字符类型。矩阵只包含一种数据类型,因此整个矩阵都转换为字符矩阵。将其转换为data.frame将导致每列成为因子而不是数字。