添加新行,在变量列中填充连续年份和0

Raf*_*ael 0 r

我有一个3列表(年份,ID,变量).对于我需要的每个个人ID,我需要在下一年添加一个新行,在变量列中添加一个0.我的难点是每个ID都有不同的行数(年).

这可能是原始表:

ID  year    var
1   1998    2
1   1999    5
1   2000    6
1   2001    6
1   2002    6
2   1998    12
2   1999    12
3   1998    5
3   1999    5
3   2000    4
Run Code Online (Sandbox Code Playgroud)

......这就是我需要的:

ID  year    var
1   1998    2
1   1999    5
1   2000    6
1   2001    6
1   2002    6
1   2003    0
2   1998    12
2   1999    12
2   2000    0
3   1998    5
3   1999    5
3   2000    4
3   2001    0
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

干杯

mne*_*nel 5

一个data.table解决方案(语法超过内存效率)

library(data.table)
# assuming your data is in the data.frame dd
DT <- data.table(dd)

DT[,list(year = c(year,max(year)+1), var = c(var,0)),by = ID]
Run Code Online (Sandbox Code Playgroud)