我正在尝试使用.SD
来对groupby进行分组,data.table
以将函数应用于特定列。我将以虹膜数据集为例。
可以说,我想知道不同Sepal.Length
物种有多少独特之处。
library(data.table)
obj="Species"
as.data.table(iris)[,length(unique(Sepal.Length)),by=.SD,.SDcols=obj]
可以.SDcols
作为对象提供,这一点很重要,因为我是通过编程方式进行操作的。我也想知道是否有可能使用data.table
而不是聚合和/或xtabs解决方案。
感谢任何帮助。
我们可以直接传递'obj'by
并获取'Sepal.Length'()length
的unique
元素uniqueN
as.data.table(iris)[, .(uniqueLen = uniqueN(Sepal.Length)), by = obj]
如果我们想走这.SDcols
条路
as.data.table(iris)[, .SD[, .(uniqueLen = uniqueN(.SD[[1]])), by = obj],
.SDcols = c(obj, "Sepal.Length")]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句