【发布时间】:2014-06-18 15:19:51
【问题描述】:
如果需要,我可以整理一个数据集,但我的问题有点笼统。
accts <- accts[, .SD[which.max(EE)], by=DnB.Name]
我有大约 350k 行的 DT,并且一些 DnB.Name(Duns 和 Bradstreet 公司名称)是具有不同员工人数 (EE) 的重复项,我只关心每个人的最高数量,可以忽略其余的。
不管怎样,DT 通常是闪电般的快,所以我想我一定是做错了什么?
【问题讨论】:
-
可能与使用
.SD有关,这意味着您必须为每个by组加载整个data.table块。见这里:stackoverflow.com/questions/12707368/… -
目前最快的方法是使用
.I,而不是here。在你的情况下,只需将里面的表达式替换为.I[which.max(..)]。
标签: r data.table