2017-08-25 5 views
-1

に私はブランクがcid_codeの変化に部門によって置き換えられるべき新しい変数sector_summaryを作成したい、この問題では、この最初にブランクを充填する。 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 |  | 
+----------+------+--------+ 

のように見える単純なデータを持っています。私はfirst.yymmとfirst.sectorの両方を使ってみましたが、残念ながら何も動作していません。私はif文もいくつか試しましたが、if文がすべての条件で動作するかどうかはわかりません。与えられたYYMM用のブランク部門がある場合は交換します別の部門とその意志があるまでとしない限り、データはこの

+-----------+-------+---------+---------------+ 
| 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  | 
+-----------+-------+---------+---------------+ 

のようになりますので、基本的セクタグループも、結果的に数ヶ月のために空白になりますさらに数ヶ月間存在しています。
どうすればいいですか教えてください

答えて

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;