【发布时间】:2012-09-10 19:56:57
【问题描述】:
我正在使用data.table 包来加快对数据集的一些汇总统计收集。
我很好奇是否有一种方法可以按多个列进行分组。我的数据如下所示:
purchaseAmt adShown url
15.54 00001 150000001
4.82 00002 150000001
157.99 05005 776300044
... ... ...
我可以这样做:
adShownMedian <- df1[,median(purchaseAmt),by="adShown"]
获取每个广告的中位数。我将如何做结合adShown 和url 的事情?
我试过了:
adShownMedian <- df1[,median(purchaseAmt),by=c("adShown","url")]
但没有运气。
有什么建议吗?
【问题讨论】:
-
您使用的是哪个版本的
data.table?我相当肯定版本 1.8.2 允许您将列名的字符向量传递给by参数。 -
没错。要么是(非常)旧版本的 data.table,要么存在其他错误。
?data.table说:“by- 单个不带引号的列名、列名表达式的 list()、包含逗号分隔的列名的单个字符串或列名的字符向量。”所以c("adShown","url")应该没问题,或者"adShown,url",或者list(adShown,url)。 -
@BenBarnes:很好,我仍然回到 1.8。
标签: r group-by data.table