任意変数が欠損値のとき、
|
NO VALUE 1001 100 . 50 1002 50 . 100 . 150 1003 50 . 200 1004 50 |
⇒ |
NO VALUE 1001 100 1001 50 1002 50 1002 100 1002 150 1003 50 1003 200 1004 50 |
RETAINステートメントを使用します。次のプログラム例を参考にしてください。例では、任意の変数が欠損値ではないとき、その値を別の変数に保存します。欠損値が現れた場合は、保存しておいた値を欠損値の代わりにセットします。
例)
/* サンプルデータセット */ DATA sample; INPUT no value; CARDS; 1001 100 . 50 1002 50 . 100 . 150 1003 50 . 200 1004 50 ; RUN; DATA sample(drop=sv_no); RETAIN sv_no; /* 値を保持 */ SET sample; IF no = . THEN /* 欠損値のとき */ no = sv_no; ELSE sv_no = no; RUN; /* 値の確認 */ PROC PRINT DATA=sample; RUN;