我正在努力熟悉构成R的广阔宇宙。有一个名为by()的优秀函数似乎正是我所需要的,但它似乎不喜欢在数据框中选择多个列。
我使用了标准的鸢尾花数据集,当只选择单个列时,它似乎表现良好,但选择多个列时就不行了。这个例子来自一本参考书,但当然可能存在打字错误。
第一个版本(这个可以工作)
> 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], ...) :
非常感谢您提供的任何解释。