2017年7月21日金曜日

My Favorite SAS Functions (8) IFN / IFC関数



第8回目は、IFN / IFC関数。
IFステートメントの関数バージョンみたいなやつです。

これも大変便利なのでヘビーに使う関数のひとつですね。



構文

   IFN (  条件式  , 条件式が真(TRUE)の場合の戻り値 ,  条件式が偽(FALSE)の場合の戻り値 )


戻り値を数値で返したい場合はIFN関数を使い、文字値で返したい場合はIFC関数を使います。


以下記事ですでに紹介済みなので、まずはそちらをご覧ください。
IFN / IFC関数と謎の第4引数



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





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

data DT1;
   length X1 $10.;
   X1="YES"; output;
   X1="NO"; output;
run;

 X1 
   YES  
   NO 


ここで
・X1="YES" だったら「1」
・X1="YES" 以外だったら「0」
みたいな条件分岐で値を設定したいとします。

通常はIFステートメントを使いますよね。

Before
data DT2;
   set DT1;
   if X1 = "YES" then X2=1;
   else  X2=0;
run;
 X1
 X2
  YES      1  
  NO     0  


IFN関数を使えばもっとスッキリとした文になります。

After
data DT2;
   set DT1;
   X2 = ifn(X1="YES",1,0);
run;
 X1 
 X2
  YES      1  
  NO     0




記事一覧

1.CATS関数
8.IFN・IFC関数

0 件のコメント:

コメントを投稿