SASで汎用マクロを作成することがよくあります。私のマクロの中で私はSASオプションまたはODSオプションが設定されているかどうかを確認する方法
- マクロ変数
- SASオプション
- ODSオプション
しかし、その後のように、私は「私の混乱を一掃」したい、いくつかの設定を適用します。
%macro myMac();
%let old_mac_var = &mac_var;
%let mac_var = my_variable;
%put Doing my stuf with &mac_var.;
%let mac_var = &old_mac_var;
%mend;
%let mac_var = value before;
%myMac;
%put mac_var is &mac_var;
だろうマクロ変数については
(もちろん、私は実際にはローカルマクロ変数を使用して、これを解決するだろうが、それは関係ありませんです。)
しかし、私はどのように行うのかそれは他の設定ですか?つまり、このコードをどのように完成させるのですか?
%macro test_mprint(should_shouldNot);
data _null_;
put "NOTE: 'data _null_;' &should_shouldNot. be readable here above in the log";
run;
%mend;
%macro myMac();
%let sas_mprint = ...;
%let ods_exclude = ...;
options nomprint;
ods exclude none;
title 'CARS should be printed because of ods option exclude none';
proc print data=sashelp.class;
run;
%test_mprint(should not);
options &sas_mprint.;
ods exclude &ods_exclude.;
%mend;
options mprint;
ods exclude all;
%myMac;
title 'printing CLASS should be avoided by ods option exclude all';
proc print data=sashelp.class;
run;
%test_mprint(should);
これは答えの1/4です。オプションを取得するのは簡単ですが、オプション設定の種類が異なるため、元の状態に戻すことははるかに難しくなります。 –