当我使用以下代码在sas中运行宏时,我一直在收到错误 - 符号引用未解析: 最初,我使用SQL将一组角色编号选择为以下列表:
PROC SQL NOPRINT; SELECT ROLENO INTO:R1-:R81 FROM ROLLNOS; QUIT;
然后使用宏来选择每个单独的标记,并将它们拼凑为:
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语句时出错,请帮我解决问题。特别是引用part "&R&I."
答案 0 :(得分:2)
您想要解析为R1。
&安培;的R&我。解析为macarovariable R(不可用)和宏变量I.
你需要第二个&在R之前,因为2&决心一个。
如果你使用&& R& I,在第一步&& R解析为& R和& I解析为1,所以你得到& R1。然后,这将在第二步中解析为宏变量R1。
同样%I = 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;