我有一个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)
任何帮助将不胜感激.
干杯
一个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)