2014年6月13日金曜日

変数指定は「V100-V1」のように逆にもできる。


変数がV1、V2・・・V100とあったとき、「keep V1-V100」みたいに範囲指定して書けることはわりと知られています。
これはさらに「keep V100-V1」のように逆に指定することもできます。

この逆指定で処理が楽になる例を以下にあげてみました。

サンプルデータのNO1からNO3の中で最後の値を取ってきたい場合、
COALESCE関数と変数逆指定の組み合わせで簡単に出来てしまいます。

*** サンプルデータ作成 ;
data DT1;
input SUBJID:$3. NO1 NO2 NO3;
cards;
001 100 95 110
002 56  50 .
003 90 .  .
;

*** 変数の逆指定 ;
data DT2;
  set DT1;
  LAST = coalesce( of NO3-NO1 );
run;

 SUBJID   NO1   NO2   NO3   LAST 
  001    100   95   110   110 
  002   56  50   .  50
  003   90   .   .   90

変数の範囲指定を関数で行う場合「of」を先頭につけるのを忘れずに!


0 件のコメント:

コメントを投稿