R data.tables:一次性订购和汇总?

时间:2014-08-01 20:13:50

标签: r data.table

我在R中有以下三行:

dt <- data.table(r)
dt <- dt[,list(d=sum(distance)), by=list(pid, person1, person2)]
dt <- dt[order(pid, d)]

如何将后两者合并为一个语句?另外,我可以传递一些类似SQL的LIMIT因子,因此每个pid,person1,person2组合只有十行吗?

1 个答案:

答案 0 :(得分:3)

要在一个陈述中执行此操作,这应该有效:

dt <- dt[,list(d=sum(distance)), by=list(pid, person1, person2)][order(pid, d)]

对于限制,请尝试使用head。不过,我不确定你会得到什么。上述语句的输出应该每个pid有一行,person1,person2组合。

另外,请提供您正在使用的数据的可重复的小例子。