我正在尝试熟悉构成 R 的浩瀚宇宙。 by() 有一个出色的函数,它似乎可以满足我的需要,但它似乎不喜欢在数据框中选择多个列。
我使用了标准的 iris 数据集,虽然它在选择单列时表现良好,但似乎不喜欢选择多列。该示例取自参考书,但当然可能存在拼写错误。
第一个版本(有效)
> by(iris[,2],Species,mean)
Species: setosa
[1] 3.428
------------------------------------------------------------
Species: versicolor
[1] 2.77
------------------------------------------------------------
Species: virginica
[1] 2.974
第二个版本(这不是)
> by(iris[,2:3],Species,mean)
Species: setosa
[1] NA
------------------------------------------------------------
Species: versicolor
[1] NA
------------------------------------------------------------
Species: virginica
[1] NA
Warning messages:
1: In mean.default(data[x, , drop = FALSE], ...) :
argument is not numeric or logical: returning NA
2: In mean.default(data[x, , drop = FALSE], ...) :
argument is not numeric or logical: returning NA
3: In mean.default(data[x, , drop = FALSE], ...) :
任何解释都非常感激。