在 SAS 中的宏变量后附加额外字符?
Append extra characters after a macro variable in SAS?
我有一个简单的宏,我在其中传递参数但也想附加到宏上。但是,当我尝试添加附加文本时,它无法识别原始宏变量。我试图先将宏变量转换为字符串,附加额外的文本,然后取消引用它,但找不到合适的连接函数来使用。
这是我的宏,但现在不起作用,问题出在第三行 &del_30
。编译器试图将 &del_30 解释为宏,而不是 &del_ 本身。
%macro plot_better_same_worse(title_, del_);
proc Sgplot data=ALL_TP_NORM_TBL;
SERIES X = asofdt Y = &del_30 /
MARKERS LINEATTRS = (THICKNESS = 2);
run;
%mend plot_better_same_worse;
我也尝试这样做:&&del_&30
但 SAS 也试图将 &30
解释为宏变量。
宏变量名以&
开头,.
结尾,或者第一个字符非法出现在宏变量名中(A-Z、0-9、_)。
所以 &del_.30
会解析 &del_
然后在它后面加上 30
。
我有一个简单的宏,我在其中传递参数但也想附加到宏上。但是,当我尝试添加附加文本时,它无法识别原始宏变量。我试图先将宏变量转换为字符串,附加额外的文本,然后取消引用它,但找不到合适的连接函数来使用。
这是我的宏,但现在不起作用,问题出在第三行 &del_30
。编译器试图将 &del_30 解释为宏,而不是 &del_ 本身。
%macro plot_better_same_worse(title_, del_);
proc Sgplot data=ALL_TP_NORM_TBL;
SERIES X = asofdt Y = &del_30 /
MARKERS LINEATTRS = (THICKNESS = 2);
run;
%mend plot_better_same_worse;
我也尝试这样做:&&del_&30
但 SAS 也试图将 &30
解释为宏变量。
宏变量名以&
开头,.
结尾,或者第一个字符非法出现在宏变量名中(A-Z、0-9、_)。
所以 &del_.30
会解析 &del_
然后在它后面加上 30
。