SAS:如何在if-else语句中使用宏

时间:2018-03-21 04:20:34

标签: sas

当我只使用宏时:

%extracTable();

没有错误..

然而,当我使用时:

data _null_;

if 1=1

then %extracTable();

else put @@@do not insert@@@;

run;

它返回:

error:unquote array:Execute

error:388-105

error 76-322

error:180-322

为什么以及如何解决这个问题......我对马克斯的语法很弱......谢谢你

1 个答案:

答案 0 :(得分:1)

我认为你不太可能想要使用相同的宏作为“独立”脚本和内部数据步骤if..then子句。如果要有条件地执行宏,请尝试:

%macro extracTable();
%put some text;
%mend;

data _null_;
if 1=1 then call execute('%extracTable();');
else put '@@@do not insert@@@';
run;