他の方が書いたSASプログラムを引き継いで運用するって事ありますよね。
そんな時に今回紹介するオプションが結構役に立ちます。
まず以下のプログラムがあったとします。
* 適当な例 ;
%macro TEST; X=1; %mend; %macro TEST2; data DT1; %TEST run; %mend; |
マクロ[TEST2]の中で別のマクロ[TEST]を呼び出しているプログラムです。
ここで MPRINT オプションを設定してマクロを実行すると、、
options mprint;
%TEST2; ログ MPRINT(TEST2): data DT1; MPRINT(TEST): X=1; MPRINT(TEST2): run; |
上のログのように、展開されたマクロがログに出力されます。
さらにMPRINTNEST オプションも合わせて設定すると、、
options mprint mprintnest;
%TEST2; ログ
MPRINT(TEST2): data DT1;
MPRINT(TEST2.TEST): X=1;
MPRINT(TEST2): run;
|
MPRINT(マクロ名1.マクロ名2) という風にネストされているマクロ名がすべて出力されます。
設定を戻すには 「options nomprint nomprintnest ;」と書けばok
マクロって便利ですが、ネストしまくると読みづらいプログラムになりがちです。
そういった時、上記オプションを設定することで、マクロの動きが分かり易くなる場合があります。
0 件のコメント:
コメントを投稿