2017年7月12日水曜日

My Favorite SAS Functions (7) CMISS関数



第7回目は、CMISS関数。
指定した変数のうち、欠損値の数を返してくれます。
おススメポイントが、数値変数・文字変数どちらも指定可能という点です。


基本的な使用例は以下記事で紹介済みなので、そちらをご覧ください。
欠損値のチェックを簡単に行う。



では、CMISSを使わない場合と、使う場合とでプログラムを比較してみましょう。





例えば、以下のようなデータセットがあったとします。

data DT1;
   X1=1;
   X2=.;
   X3="aaa";
run;

 X1 
 X2 
X3
   1    .  aaa 


この変数 X1~X3 のうち、いずれかが欠損値の場合、変数Yにフラグ「1」を立てたいとします。
まずはCMISSを使わない場合。

Before
data DT2;
   set DT1;
   if X1=. or X2=. or X3="" then Y=1;
run;
 X1 
 X2 
X3
 Y 
   1    .  aaa   1  


そしてCMISSを使う場合。

After
data DT2;
   set DT1;
   if cmiss(X1,X2,X3)>0 then Y=1;
run;
 X1 
 X2 
X3
 Y 
   1    .  aaa   1  


今回の例だとCMISSを使った成果が見えづらいですが、変数の数が多いと非常にスッキリとした文になります。


CMISSは便利なのに知名度が低いので、すごい勿体ない。




記事一覧

1.CATS関数
7.CMISS関数

0 件のコメント:

コメントを投稿