「The SAS Dummy」さんの書かれた記事みて、テンション上がりました。
https://blogs.sas.com/content/sasdummy/2018/07/05/if-then-else-sas-programs/
「SAS9.4メンテナンスリリース5」から%IFがマクロの外でも使えるようになってます!
%let x=1;
%if &x=1 %then %do; %put NOTE: マクロ変数xの値は1です; %end; ログ NOTE: マクロ変数xの値は1です |
動いたーー!!
今まで%IFはマクロ内でしか使えなくて「%MACRO」と「%MEND」で囲ってましたが、プログラムがちょっと長くなって、いつもテンション下がってたんですよね。
現状の「メンテナンスリリース5」では、マクロ外の%IFに2つ制限があるみたいです。
① %THENと%ELSEの後は、「%DO」と「%END」で囲まないとダメ。
例)
%if 条件 %then
%do; 実行したい文 %end; %else %do; 実行したい文 %end; |
② %IF文はネストして書くことはできない。
例)NGの書き方
%if 条件 %then %do;
%if 条件 %then %do; 実行したい文 %end; %end; |
この制限も次期バージョンとかで改善されてるといいですね。
あとは、%DOもマクロ外で使えるようにしてほしいなぁ
0 件のコメント:
コメントを投稿