我正在寻找一种通过 data.table 进行简单聚合/计数的方法。
考虑 iris 数据,每个物种有 50 个观测值。要计算每个物种的观察结果,我必须总结除物种以外的列,例如“Sepal.Length”。
library(data.table)
dt = as.data.table(iris)
dt[,length(Sepal.Length), Species]
我觉得这很令人困惑,因为乍一看我好像在 Sepal.Length 上做某事,而实际上只有 Species 才重要。
这就是我想说的,但我没有得到有效的输出:
dt[,length(Species), Species]
正确的输入和输出,但代码笨拙:
> dt[,length(Sepal.Length), Species]
Species V1
1: setosa 50
2: versicolor 50
3: virginica 50
输入和输出不正确,但代码更好:
> dt[,length(Species), Species]
Species V1
1: setosa 1
2: versicolor 1
3: virginica 1