SAS文档说,调用execute中的宏引用会立即执行。这段代码是否例证了它?
%let var = abc;
data _null_;
call execute ('&var');
run;
答案 0 :(得分:2)
排序。这是一个更完整的示例,它使用宏变量的值,它是实际的可执行SAS代码。
data _null_;
call symputx('var','data;run;');
run;
%put var= %superq(var);
data _null_;
call execute ('&var');
run;
您可以在SAS日志中看到CALL EXECUTE()实际推送到堆栈上运行的代码是宏变量的值,即使单引号会阻止宏变量在数据_null_步骤期间扩展正在使用CALL EXECUTE()语句。
NOTE: CALL EXECUTE generated line.
1 + data;run;