2015-11-02 84 views
-4

您好我不知道如何把這個給SAS代碼:填充缺失值在一定範圍內具有唯一非缺失觀察

我的數據是這樣的:

Balance | Month | Outstanding 
--------+-------+-------------- 
1000 | 0  | 
200  | 1  | 
300  | 2  | 
400  | 3  | 
500  | 4  | 
800  | 5  | 
750  | 6  | 
650  | 7  | 
740  | 8  | 
580  | 9  | 
650  | 10 | 
523  | 11 | 7093 
654  | 12 | 
458  | 0  | 
789  | 1  | 
852  | 2  | 
236  | 3  | 
1258 | 4  | 
4528 | 5  | 
78520 | 6  | 
1258 | 7  | 
4821 | 8  | 
15870 | 9  | 
1587 | 10 | 
1599 | 11 | 111776 
6520 | 12 | 

,我希望它是這樣的:

Balance | Month | Outstanding 
--------+-------+------------ 
1000 | 0  | 7093 
200  | 1  | 7093 
300  | 2  | 7093 
400  | 3  | 7093 
500  | 4  | 7093 
800  | 5  | 7093 
750  | 6  | 7093 
650  | 7  | 7093 
740  | 8  | 7093 
580  | 9  | 7093 
650  | 10 | 7093 
523  | 11 | 7093 
654  | 12 | 7093 
458  | 0  | 111776 
789  | 1  | 111776 
852  | 2  | 111776 
236  | 3  | 111776 
1258 | 4  | 111776 
4528 | 5  | 111776 
78520 | 6  | 111776 
1258 | 7  | 111776 
4821 | 8  | 111776 
15870 | 9  | 111776 
1587 | 10 | 111776 
1599 | 11 | 111776 
6520 | 12 | 111776 

基本上我想填補空單元格爲全月0-12範圍內的平衡,從0-11個月的總和,並做下一組0-12個月的。

在Excel中,我可以通過使用這個formaula來做到這一點。這裏假定爲平衡列編號爲A,月是B和突出的是C:

=IF(B2=0,SUM(A2:A13),C1) 

然後只需拖動公式向下的移動總和

我只是不知道如何創建在SAS代碼中相當於。

回答

0

我已經設置了輸入數據爲:

data have; 
    input balance month outstanding; 
    datalines; 
1000  0  . 
200  1  . 
300  2  . 
400  3  . 
500  4  . 
800  5  . 
750  6  . 
650  7  . 
740  8  . 
580  9  . 
650  10  . 
523  11  7093 
654  12  . 
458  0  . 
789  1  . 
852  2  . 
236  3  . 
1258  4  . 
4528  5  . 
78520 6  . 
1258  7  . 
4821  8  . 
15870 9  . 
1587  10  . 
1599  11  111776 
6520  12  . 
; 

你可以用自己的數據結合起來,得到期望的結果如下:

data want; 
    set have(where=(outstanding ne .)); 

    do until (month=12); 
    set have(drop=outstanding); 
    output; 
    end; 
run; 

問候, 阿米爾。

0

的移動總和可與PROC EXPAND來完成:

proc expand data=have 
      out=want; 
    by <by variables>; 
    convert balance = outstanding/transform=(movsum 12); 
run; 

你的問題是不完全清楚,需要重新格式化,但proc expand會做你想要什麼。您可以閱讀SAS website上的語法。

+0

嗨,我嘗試使用PROC擴展,但是,我想讓所有的單元格具有相似的值,而不是累計總數。 你知道我應該怎麼做?謝謝。 – Rangedm