如何发现是否设置了SAS选项或ODS选项
我经常用SAS编写通用宏。在我的宏中,我想应用一些设置,如如何发现是否设置了SAS选项或ODS选项,sas,sas-macro,Sas,Sas Macro,我经常用SAS编写通用宏。在我的宏中,我想应用一些设置,如 宏变量 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
- 宏变量
- 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;
(当然,我会在实践中使用局部宏变量来解决这个问题,但这并不相关。)
但是对于其他设置,我该如何做呢?i、 e.如何填写此代码
%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);
SAS选项易于检索:
%let sas_mprint = %sysfunc(getoption(mprint)); /* gives, eg, NOMPRINT */
ODS选项不太确定。我想您可以在中的重置=和推送和弹出部分找到相关信息,不幸的是,这些信息仅适用于ODS图形选项
对于重置其他ODS设置,暴露了一种黑客行为。从9.4版开始可用:(这只是答案的四分之一。检索选项很容易,但将它们设置回原来的方式要困难得多,因为有不同的“类型”选项设置。