如何用多列分组data.table? [英] How to group data.table by multiple columns?
本文介绍了如何用多列分组data.table?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用 data.table
包来加速数据集上的一些摘要统计信息收集。
I'm using the data.table
package to speed up some summary statistic collection on a data set.
我很好奇,如果有一个方法来分组多个列。我的数据如下所示:
I'm curious if there's a way to group by more than one column. My data looks like this:
purchaseAmt adShown url
15.54 00001 150000001
4.82 00002 150000001
157.99 05005 776300044
... ... ...
像这样:
adShownMedian <- df1[,median(purchaseAmt),by="adShown"]
以获取每个广告的中位数。我如何做一些结合 adShown
和 url
?
to get each ad's median. How would I do something that combines adShown
and url
?
我尝试过:
adShownMedian <- df1[,median(purchaseAmt),by=c("adShown","url")]
但没有运气。
任何建议?
推荐答案
使用 by = list(adShown,url) code>而不是
by = c(adShown,url)
/ p>
Example:
set.seed(007)
DF <- data.frame(X=1:20, Y=sample(c(0,1), 20, TRUE), Z=sample(0:5, 20, TRUE))
library(data.table)
DT <- data.table(DF)
DT[, Mean:=mean(X), by=list(Y, Z)]
X Y Z Mean
1: 1 1 3 1.000000
2: 2 0 1 9.333333
3: 3 0 5 7.400000
4: 4 0 5 7.400000
5: 5 0 5 7.400000
6: 6 1 0 6.000000
7: 7 0 3 7.000000
8: 8 1 2 12.500000
9: 9 0 5 7.400000
10: 10 0 2 15.000000
11: 11 0 4 14.500000
12: 12 0 1 9.333333
13: 13 1 1 13.000000
14: 14 0 1 9.333333
15: 15 0 2 15.000000
16: 16 0 5 7.400000
17: 17 1 2 12.500000
18: 18 0 4 14.500000
19: 19 1 5 19.000000
20: 20 0 2 15.000000
这篇关于如何用多列分组data.table?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文