SAS:宏未在宏环境中解析
SAS: Macro not resolved within macro environment
我正在尝试创建一个宏来根据一周的检查执行其他 SAS 脚本。
data _null_;
week_num = week(); /*Current week is 31*/
call symput('week_num',week_num);
run;
%macro testmacro(week_num);
%if &week_num. = 31 %then %do;
%put This works;
%end;
%mend testmacro;
%testmacro(%week_num.);
我以第 31 周为例,因为这是发布此问题的那一周。我不断收到消息:警告:宏 WEEK_NUM 的明显调用未解决。我不明白我缺少什么才能正确调用宏。
您定义了一个名为 WEEK_NUM 的宏 变量 ,但您试图执行一个名为 WEEK_NUM 的宏,而不是引用您创建的宏变量。
使用 & 引用宏变量,使用 % 执行宏。所以在这一行中,TESTMACRO 是一个实际的宏,WEEK_NUM 是一个宏变量(也称为符号)。
%testmacro(&week_num.);
我正在尝试创建一个宏来根据一周的检查执行其他 SAS 脚本。
data _null_;
week_num = week(); /*Current week is 31*/
call symput('week_num',week_num);
run;
%macro testmacro(week_num);
%if &week_num. = 31 %then %do;
%put This works;
%end;
%mend testmacro;
%testmacro(%week_num.);
我以第 31 周为例,因为这是发布此问题的那一周。我不断收到消息:警告:宏 WEEK_NUM 的明显调用未解决。我不明白我缺少什么才能正确调用宏。
您定义了一个名为 WEEK_NUM 的宏 变量 ,但您试图执行一个名为 WEEK_NUM 的宏,而不是引用您创建的宏变量。
使用 & 引用宏变量,使用 % 执行宏。所以在这一行中,TESTMACRO 是一个实际的宏,WEEK_NUM 是一个宏变量(也称为符号)。
%testmacro(&week_num.);