2016年4月22日金曜日

プログラムスリム化計画 【LEFT、TRIM関数を使わない】



* Sample data ;
data DT1;
   length A B $10.;
   A = "aa";
   B = "b b";
run;

上のデータから以下の変数を作りたい。
  •  文字変数 A・B を結合した変数X
  •  結合時、各変数の両脇の半角スペースを除去する。


昔は以下のようにLEFT/TRIM関数を使用していました。
  
* 昔の書き方 ;
data OUT1;
   length X $20.;
   set DT1;
   X = trim(left(A)) || trim(left(B));
run;
 X   
 A   
B  
 aab b  aa  b b  


この昔から定石として書かれているプログラムは、以下のようにスリム化できます。

* プログラムのスリム化 ;
data OUT2;
   length X $20.;
   set DT1;
   X = cats( A, B );
run;


CATS関数やその他の半角スペース処理関連のテクニックは以下記事で解説しています。

0 件のコメント:

コメントを投稿