在R data.table中获得每组一行

时间:2015-01-09 23:13:01

标签: r data.table

我经常想一次处理一行data.table。我一直在使用

d[, j, by=rownames(d)]

但这似乎并不总是有效(有时通过出现评估列名来获得错误消息),并且在任何情况下都不是我想要做的非常干净的表达。

让我举一个具体的例子。

d = data.table(a=c(1,2),b=c(3,4))
f = function(x,y) x[1]+y[1] #expects length 1 vectors x and y and adds them
d[, id := 1:.N]
d[, f(a,b), by=id]
d[, id := NULL]

情况是我有一个没有矢量化的函数f。我用id列装饰了d,所以我可以一次处理一行。我正在寻找一种更好的方法来做到这一点。

这是另一个例子,没有函数f:

d[, list(a=a,b=b,s=a:b), by = id]
d[, id := NULL]

0 个答案:

没有答案