我曾经使用aggregate
进行数据聚合,如何在data.table
中实现类似的功能?
假设我是这样生成数据的:
data <- data.table("a"=sample(1:100, 100),
"b"=sample(1:100, 100),
"c"=sample(1:100, 100),
"d"=sample(1:100, 100),
"metric"=rnorm(100))
我曾这样做:aggregate(metric~a+b, data=data, sum)
。在data.table
中,有什么等效的方法吗?我尝试了data[, total:=sum(metric), by=list(a,b)]
,但其他列没有被删除。
data[, list(metric=sum(metric)), by=list(a,b)]
,意思是按a
和b
两列分组,并计算metric
列的总和。 - Arun