2017年7月27日木曜日

My Favorite SAS Functions (9) CALL MISSING



第9回目は、関数じゃなくてコールルーチンになりますが、CALL MISSINGを紹介。
指定した変数をすべて欠損値にする機能を持っています。


こちらもやっぱり過去記事で紹介済みです。
指定した変数をすべて欠損値にする【CALL MISSING】



さて、CALL MISSINGの使用前・使用後を見てみましょう。




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

data DT1;
   X1 = 123;
   X2 = 456;
   X3 = "abc";
run;
  X1  
  X2  
  X3   
 123 456  abc

ここで、変数 X1, X2, X3 を欠損値にしたいします。

普通に書くと以下のような感じですね。

Before
data DT2;
   set DT1;
   X1=.;
   X2=.;
   X3="";
run;
  X1  
  X2  
  X3  
   .   .  

数値変数だったら「数値変数=.;」
文字変数だったら「文字変数="";」
みたいな感じで書き方分けなきゃいけないし、面倒ですよね。

CALL MISSINGを使えば、もっと楽になります。

After
data DT2;
   set DT1;
   call missing(X1, X2, X3);
run;
  X1  
  X2  
  X3  
   .   .  

📝ちなみに

通常のデータセット以外で使用すると、WARNINGが出て機能しない事があるらしい?ので、ログとかも確認するようにして下さい

0 件のコメント:

コメントを投稿