代码:
%let code1=A1,B2,C3,D4; /*每次的分段数量在变化。*/
data _null_;
do i=1 by 1 while(scan("&code1.",i) ne '');
aaa=scan("&code1.",i);
call symput("code2",aaa);
%put &code2;
put aaa;
end;
run;
现在期望%put &code2;的输出与put aaa;的输出是一致的,即:
A1
B2
C3
D4
但是,现在第一次运行时输出:
%let code1=A1,B2,C3,D4; /*每次的分段数量在变化。*/
data _null_;
do i=1 by 1 while(scan("&code1.",i) ne '');
aaa=scan("&code1.",i);
call symput("code2",aaa);
%put &code2;
WARNING: 没有解析符号引用 CODE2。
&code2
8 put aaa;
9 end;
10
11 run;
A1
B2
C3
D4
再一次运行时输出:
%let code1=A1,B2,C3,D4; /*每次的分段数量在变化。*/
data _null_;
do i=1 by 1 while(scan("&code1.",i) ne '');
aaa=scan("&code1.",i);
call symput("code2",aaa);
%put &code2;
D4
put aaa;
end;
run;
A1
B2
C3
D4
%put &code2;只看见最后一段的值D4了。请问大师们错误在哪里,该如何纠正?