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.);