重新创建SQL语句sum(y / x)

时间:2015-03-03 16:26:29

标签: sql r data.table

我想复制SQL查询"从...组中选择sum(x / y)..."其中first(x / y)然后使用R中的data.table包通过适当的分组来总结该除法的结果。我的数据集是100万行,因此速度是必不可少的。我在下面的简单玩具示例中列出了我当前的程序方法:

require(data.table)
DT <- data.table(testkey=rep("a",3),x=1:3,y=1:3)
DT
DT[,x:=y/x]
DT
DT <- DT[,lapply(.SD,sum),by=testkey]
DT

有没有更快的方法来实现这个或更好的方法来一步完成除法和求和?另外,通过引用调用计算效率最高的方法进行划分?

1 个答案:

答案 0 :(得分:4)

这应该这样做

DT[, .(x=sum(y/x)), by=testkey]