Sas 宏变量不能用下划线解析
在使用下划线时,试图在宏定义内解析宏变量时出现问题。我想保持这里的命名约定,但需要宏变量来解析。我错过了什么Sas 宏变量不能用下划线解析,sas,sas-macro,Sas,Sas Macro,在使用下划线时,试图在宏定义内解析宏变量时出现问题。我想保持这里的命名约定,但需要宏变量来解析。我错过了什么 %macro mymacro(dd=,mm=,yy=,dnr=,dma=); . . . %if dnr = 1 %then %let dnrname=est; %if dnr = 2 %then %let dnrname=cen; %if dnr = 3 %then %let dnrname=mtec; %if dnr = 4 %then %let dnrname=pac; %if
%macro mymacro(dd=,mm=,yy=,dnr=,dma=);
.
.
.
%if dnr = 1 %then %let dnrname=est;
%if dnr = 2 %then %let dnrname=cen;
%if dnr = 3 %then %let dnrname=mtec;
%if dnr = 4 %then %let dnrname=pac;
%if dnr = 5 %then %let dnrname=mtwp;
data setoff_&dnrname._&dma._&mm.&dd.&yy.;
set restart_no retimed one_min_durations;
run;
.
.
.
%mend mymacro;
错误如下所示:
NOTE: Line generated by the invoked macro "SETOFF".
89 data setoff_&dnrname._&dma._&mm.&dd.&yy.; set restart_no retimed one_min_durations;
-
22
200
89 ! run; proc sort data = setoff_&dnrname._&dma._&mm.&dd.&yy.; by &dims_list. sid; run;
ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, (, /, ;,
_DATA_, _LAST_, _NULL_.
%如果dnr=1%,则%let dnrname=est代码>
这就是问题所在dnr
从不等于1
。您缺少与号。%如果dnr=1%,则%let dnrname=est代码>
这就是问题所在dnr
从不等于1
。你错过了符号