|
|
欠損値を任意の値に置き換える
[OS]ALL
[リリース] 8.1, 8.2
[キーワード] MISSING, MISSING VALUE, ARRAY
[質問]処理の都合で、欠損値の変数に対して別の値を入れたいと考えています。何か方法はあるでしょうか。
[回答]SAS System 8eでは欠損値を判定するためのMISSING関数が追加されました。これにより文字変数、数値変数を問わず、容易に欠損値を判定できます。
MISSING(変数名) ※戻り値が「1」ならその変数は欠損値
このMISSING関数とARRAYステートメントを使って、欠損値の変数を任意の値に置き換えるプログラム例は、次のとおりです。
/* データ内に存在する数値変数の欠損値に対しては「0」で穴埋めし、*/
/* 文字変数に対しては「欠損」という文字で穴埋めをします。*/
DATA work.dat2;
SET work.dat1;
/* DOループを使うための配列を定義する */
ARRAY nvar _numeric_;
ARRAY cvar _character_;
/* 数値変数の欠損値を調べる */
DO i=1 TO DIM(nvar);
IF MISSING(nvar[i]) THEN DO;
nvar[i]=0;
END;
END;
/* 文字変数の欠損値を調べる */
DO i=1 TO DIM(cvar);
IF MISSING(cvar[i]) THEN DO;
cvar[i]='欠損値';
END;
END;
DROP i;
RUN;
なお、V6の場合はMISSING関数が利用できませんので、「欠損値を0に置き換える」を参考に対応してください。
|
|||||