2016年3月10日木曜日

SELECT-WHEN入門 【条件分岐処理】



SELECT-WHEN は変数の値によって処理を分岐するような場合に使います。



書き方1

data DT1;
  set SASHELP.CLASS;
  select (AGE);
       when (11)       X=1;     * ① ;
       when (12)       X=2;     * ② ;
       when (13)       X=3;     * ③ ;
       when (14,15)  X=4;     * ④ ;
       otherwise       X=99;   * ⑤ ;
  end;
run;


・AGEの値によって変数Xにいれる値を分岐しています。
・①~④の順に見ていって「AGEの値と一致する ”最初のWHENステートメント”」のみ実行される。
・AGEの値がどれにも一致しなかった場合⑤のOTHERWISEが実行される。

※ AGEがどのWHENステートメントにも一致しない場合、OTHERWISEがないとエラーになる。



書き方2

data DT1;
  set SASHELP.CLASS;
  select;
       when (AGE=11 and WEIGHT>100)   X=1;
       when (AGE=12 and WEIGHT>100)   X=2;
       otherwise                                            X=99;
  end;
run;

こちらも「条件に該当する ”最初のWHENステートメント”」のみ実行される。



応用

data DT1;
  set SASHELP.CLASS;
  select;
      when (AGE=11) do;
          X1=1;
          X2=1;
      end;
      otherwise;
  end;
run;

・DO~ENDで囲めば、処理を複数書ける。
・「OTHERWISE ;」のように処理文を省略すると「OTHERWISEの場合、なにも処理しないで」という指定になる。



0 件のコメント:

コメントを投稿