Macros sas宏中的符号引用
使用以下代码在sas中运行宏时,我收到一个错误-符号引用未解决: 最初,我使用SQL在列表中选择一组角色号,如下所示:Macros sas宏中的符号引用,macros,sas,Macros,Sas,使用以下代码在sas中运行宏时,我收到一个错误-符号引用未解决: 最初,我使用SQL在列表中选择一组角色号,如下所示: procsqlnoprint;从ROLLNOS中将ROLENO选择为:R1-:R81;退出 然后使用宏选择每个单独的标记,并将其命名为: options Mprint; %MACRO Marks; %DO I=1 %TO 1; proc sql noprint; create table Marks as select name, rollno, marks, grade
procsqlnoprint;从ROLLNOS中将ROLENO选择为:R1-:R81;退出代码>
然后使用宏选择每个单独的标记,并将其命名为:
options Mprint;
%MACRO Marks;
%DO I=1 %TO 1;
proc sql noprint;
create table Marks as select name, rollno, marks, grade from masterdata
where rollno= "&R&I.";
quit;
PROC APPEND DATA=Marks BASE=MarksSheet FORCE;RUN;
%END;
%MEND;
RUN;
%Marks;
我在执行sql语句时出错,请帮助我解决此问题。尤其是引用部分-“&R&I.”
您要解析为R1
&R&I.解析为MACAROR变量(不可用)和宏变量I
在R之前需要一秒钟,因为2将解析为1
如果使用&&R&I,在第一步中,&&R解析为&R,而&I解析为1,因此得到了&R1。这将在第二步中解析为宏变量R1
另外%Doi=1%对1只有一次迭代,这意味着什么
options Mprint;
%MACRO Marks;
%DO I=1 %TO 1;
proc sql noprint;
create table Marks as select name, rollno, marks, grade from masterdata
where rollno= "&&R&I.";
quit;
PROC APPEND DATA=Marks BASE=MarksSheet FORCE;RUN;
%END;
%MEND;
%Marks;
是的,它是有效的,没有“它只是”和“R&I”。谢谢“.”应该是可选的。这在这里没有真正意义,但也不应该产生错误。