【发布时间】:2017-08-10 15:05:41
【问题描述】:
我正在使用data.table 包来加快数据集上的一些汇总统计收集。
我很好奇是否有一种方法可以按多个列进行分组。我的数据如下所示:
Date Cluster Value
2016-12-11 A 36
2016-12-11 B 40
2016-12-11 C 17
2016-12-12 A 41
2016-12-12 B 27
2016-12-12 C 19
...
2017-2-21 A 22
2017-2-21 B 35
2017-2-21 C 27
我想得到这样的数据:
Date Cluster Value Total
2016-12-11 A 36 93
2016-12-11 B 40 93
2016-12-11 C 17 93
2016-12-12 A 41 87
2016-12-12 B 27 87
2016-12-12 C 19 87
...
2017-2-21 A 22 84
2017-2-21 B 35 84
2017-2-21 C 27 84
我的代码:
colName <- "Cluster"
dt[, list(colName, Value, Total=sum(Value)), by = c("Date")]
我只能得到这样的数据:
Date colName Value Total
2016-12-11 Cluster 36 93
2016-12-11 Cluster 40 93
2016-12-11 Cluster 17 93
2016-12-12 Cluster 41 87
2016-12-12 Cluster 27 87
2016-12-12 Cluster 19 87
...
2017-2-21 Cluster 22 84
2017-2-21 Cluster 35 84
2017-2-21 Cluster 27 84
colName 是来自输入的参数。这就是问题所在。
【问题讨论】:
-
接受的答案更好,但如果你想传递字符串作为参考,你可以在 dt 范围内使用
eval(substitute ("str"))
标签: r data.table