我有以下问题:使用SAS proc扩展填充缺失值
我想用proc填充缺失的值展开简单地取下一个数据行的值。
我的数据是这样的:
date;index;
29.Jun09;-1693
30.Jun09;-1692
01.Jul09;-1691
02.Jul09;-1690
03.Jul09;-1689
04.Jul09;.
05.Jul09;.
06.Jul09;-1688
07.Jul09;-1687
08.Jul09;-1686
09.Jul09;-1685
10.Jul09;-1684
11.Jul09;.
12.Jul09;.
13.Jul09;-1683
正如你可以看到一些日期索引丢失。我要实现以下目标:
date;index;
29.Jun09;-1693
30.Jun09;-1692
01.Jul09;-1691
02.Jul09;-1690
03.Jul09;-1689
04.Jul09;-1688
05.Jul09;-1688
06.Jul09;-1688
07.Jul09;-1687
08.Jul09;-1686
09.Jul09;-1685
10.Jul09;-1684
11.Jul09;-1683
12.Jul09;-1683
13.Jul09;-1683
正如你可以看到在那里从下一行采取的缺失数据的值(11.Jul09和12Jul09得到了13Jul09值)
所以PROC扩大似乎是正确的做法,我开始使用此代码:
PROC EXPAND DATA=DUMMY
OUT=WORK.DUMMY_TS
FROM = DAY
ALIGN = BEGINNING
METHOD = STEP
OBSERVED = (BEGINNING, BEGINNING);
ID date;
CONVERT index /;
RUN;
QUIT;
这填补了空白,但是从以前的行,不管我设置ALIGN,观测或甚至对数据进行排序降序我没有达到我想要的行为。
如果你知道如何做正确的话,如果你能给我一个提示就太好了。关于proc扩展的良好论文也同样适用。
感谢您的帮助和亲切的问候 斯蒂芬
感谢您详细的解决方案 - 它工作正常,动态铅的方法是很好的(因为我没有看到过它)。但是,由于RamB更优雅的方法,我将他的答案标记为正确。再次感谢你的帮助!斯蒂芬 –