我有以下問題:使用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更優雅的方法,我將他的答案標記爲正確。再次感謝你的幫助!斯蒂芬 –