我有以下数据集:
df <- data.frame (id= c(1,1,1,2,2), time = c(13,14,17,17,17))
id time
1 1 13
2 1 14
3 1 17
4 2 17
5 2 17
我想继续讨论每个id并减去下一次和前一次。所以,我理想的输出将是:
#output
id time diff
1 1 13 0
2 1 14 1
3 1 17 3
4 2 17 0
5 2 17 0
最有效的方法是什么?
答案 0 :(得分:1)
这是一个很好的解决方案:
df$diff <- with(df, ave(time, id, FUN = function (x) c(0, diff(x))))