2017-08-25 78 views
-1

我有一個簡單的數據,看起來像這樣首先填充空白。在SAS

+----------+------+--------+ 
| cis_code | yymm | sector | 
+----------+------+--------+ 
| CTAGBTH | 1707 | BANK | 
| CTAGBTH | 1706 |  | 
| CTAGBTH | 1705 |  | 
| CTAGBTH | 1703 |  | 
| CTAGBTH | 1702 | RETAIL | 
| CTAGBTH | 1701 |  | 
| CTAGBTH | 1612 |  | 
| CTAGBTG | 1703 |  | 
| CTAGBTG | 1702 | AGRI | 
| CTAGBTG | 1701 |  | 
| CTAGBTG | 1612 | RETAIL | 
| CTAGBET | 1705 |  | 
| CTAGBET | 1510 | FSI | 
| CTAGBET | 1504 |  | 
+----------+------+--------+ 
在這個問題

我想創建一個新的變量sector_summary其中空白應該通過與cid_code變化的行業所取代。我曾嘗試使用first.yymm和first.sector,但不幸的是沒有任何工作。我也嘗試了一些if語句,但不確定if語句是否適用於所有條件。該數據應該是這樣的

+-----------+-------+---------+---------------+ 
| cis_code | yymm | sector | Sector_Group | 
+-----------+-------+---------+---------------+ 
| CTAGBET | 1705 |   |    | 
| CTAGBET | 1510 | FSI | FSI   | 
| CTAGBET | 1504 |   | FSI   | 
| CTAGBTG | 1703 |   |    | 
| CTAGBTG | 1702 | AGRI | AGRI   | 
| CTAGBTG | 1701 |   | AGRI   | 
| CTAGBTG | 1612 | RETAIL | RETAIL  | 
| CTAGBTH | 1707 | BANK | BANK   | 
| CTAGBTH | 1706 |   | BANK   | 
| CTAGBTH | 1705 | BANK |    | 
| CTAGBTH | 1703 | BANK |    | 
| CTAGBTH | 1702 | RETAIL | RETAIL  | 
| CTAGBTH | 1701 |   | RETAIL  | 
| CTAGBTH | 1612 |   | RETAIL  | 
+-----------+-------+---------+---------------+ 

所以基本上,如果沒有爲給定YYMM一個空白扇區的扇區羣也將是空白隨之而來的幾個月之前,除非有其被替換另一個部門,這將在接下來的幾個月裏會繼續在那裏。
請讓我知道如何去做

回答

2

你只需要保留這些值。它也看起來像你需要排序數據(或在BY聲明中使用NOTSORTED選項)。

data want ; 
    set have ; 
    by cis_code descending yymm ; 
    if first.cis_code or not missing(sector) then sector_group=sector; 
    retain sector_group; 
run;