原始数据如下所示(Date
采用dd / mm / yyyy格式):
ID Date Var
01 21/01/2016 1
01 22/01/2016
02 13/05/2016
02 14/05/2016 2
03 08/06/2016 3
03 08/06/2016 4
04 09/07/2016 5
04 09/07/2016
05 10/08/2016
05 10/08/2016 6
从本质上讲,每个ID
对于提交日期Var
感兴趣的变量Date
有三种情景:
1 / Var
出现在较早的Date
上,但在后一个(ID=01)
上丢失了
2 / Var
在早期Date
上丢失,但在后一个(ID=02)
上出现
3 / Var
出现在Date
上,其值可能相同或不同(ID=03)
。
现在我如何修改Var
如下?
1 /使用之前Var
的{{1}}的值来填补后一个。{
2 /使用后期Date
的{{1}}的值来填充之前的Var
3 /使用后来Date
的{{1}}的值来替换之前的Var
。
因此修改后的数据应如下所示:
Date
答案 0 :(得分:1)
您的示例由
解决bysort ID (Var): replace Var = Var[1] if missing(Var)
bysort ID (Date): replace Var = Var[_N]
使用附近的已知值更换系列中的缺失值称为插值。参见例如here通知更一般地支持第一种方法的插值命令(以及其他方法)。