2017年7月31日月曜日

My Favorite SAS Functions (10) CALL SYMPUTX



ユーザー総会で紹介する関数(とコールルーチン)は今回ので終わりです。
最後はコールルーチンになりますが、CALL SYMPUTXを紹介します。



こちらもやっぱり過去記事で紹介済みです。
値をマクロ変数に格納する「CALL SYMPUTX」その1




構文

  CALL SYMPUTX(  "マクロ変数名" , 変数名  )


・指定した変数の両脇の半角スペースを取り除いたうえで、マクロ変数に格納する。

・数値変数を指定した場合、bestフォーマットを使って文字変換してくれる。
(bestフォーマットに変換した値なので、元の変数値とは異なる(丸め処理が行われる)場合があることにご注意ください)






それでは、CALL SYMPUTXを使った場合と、使わない場合を比較してみましょう。
以下は、変数 X の値をマクロ変数 Y に格納する例です。


Before
data _null_;
   X = 123456;
   call symput("Y", trim(left(put(X,best.))));
run;

%put "&Y";

ログ
123456

CALL SYMPUTの中で、「trim(left(put(X,best.)))」 として、
bestフォーマットで文字変換してから余計なスペースを取り除く処理をしていますが、なんて面倒なんだって感じですね。


以下、CALL SYMPUTX を使うとスッキリとした文になります。

After
data _null_;
   X = 123456;
   call symputx("Y",X);
run;

%put "&Y";

ログ
123456


以上、過去記事の焼き直しみたいな記事が続いてしまいましたが、
それだけ便利かつアイディア次第で色々できる関数たちなので再度紹介してきました。

色々使い方考えるの楽しいので、SASプログラムを楽しむ人達が増えるといいなぁ。



記事一覧

1.CATS関数
10.CALL SYMPUTX

0 件のコメント:

コメントを投稿