【发布时间】:2016-02-12 14:31:04
【问题描述】:
我有近 10m 行,我只想从每组中选择前三行。
我用
data[x == 1 | y > -6, .SD[1:3], by = z]
我需要得到结果
但它很慢,因为10M它只是火车集。所以也许有任何想法如何优化它。提前谢谢你。
【问题讨论】:
-
嗨,欢迎来到 SO。请考虑阅读How to Ask 以及如何生成reproducible example。它使其他人更容易帮助您。
-
您运行的是哪个版本的
data.table?你读过binary search 小插图吗? -
@MichaelChirico data.table 1.9.6
-
Update to the development version -- 最近有一些
GForce优化了您正在执行的操作。 -
尝试
data[data[x == 1L | y > -6L, .I[1:3], by=z]$V1],直到优化此案例。
标签: r data.table