2014年7月3日木曜日

関数の中でOFを使うと変数の指定が楽になる例と応用例。



たとえば変数A1~A5の合計を求めたい時、

VAR = sum(of A1-A5);

と書きます。よくあるOFの使い方ですが以下のように、、

VAR2 = sum(A1, A3, A5);

VAR2 = sum(of A1 A3 A5);

変数名の間のカンマ(,)を省略したい場合にOFを使うことができます。


このカンマ省略機能が生かされる例として以下の例を見てみましょう。

%macro M_SUM( DSNAME, VARS );

  data &DSNAME;
    A=1;
    B=1;
    C=1;
    D = sum(of &VARS);
  run;

%mend;
%M_SUM( DT1, A B C );
%M_SUM( DT2, A C );


マクロを実行する際の引数の指定が楽になってますね。
OFを使わないとカンマをQUOTEするために%STR関数等を使う必要がありました。

%M_SUM( DT1, %str(A, B, C) );
%M_SUM( DT2, %str(A, C) );



0 件のコメント:

コメントを投稿