我想知道,如果我有可以按变量分组的数据,我如何获得前一组的最后观察结果?
我有以下数据:
dt <- data.table(a=c(1,1,1,2,2,2,2,2,3,3,3,3,3,3,4,4,5,5,5,5,5), b=sample.int(21))我想创建一个新的data.table,它具有组ID以及该组的最后一次观察与前一组的最后一次观察之间的差异。因此,从上面的内容我可以得到:
a c
1: 1 NA
2: 2 9
3: 3 1
4: 4 -8
5: 5 5谢谢!
发布于 2020-01-28 00:10:58
我们按'a‘分组,获取'b’的last元素,然后通过shifting获取'c‘的lag
dt[, .(c = last(b)), a][, c:= shift(c)][]https://stackoverflow.com/questions/59934843
复制相似问题