我想这主要还是sas本身的一些缺陷造成的!data result步前面加上下边这段后,在你的机器上运行应该就不会出错了:
[quote:2y9j01hq]data _null_;
call symputx('obs',n);
set have nobs=n;
run;[/quote:2y9j01hq]
[code:2y9j01hq]data _null_;
call symputx('obs',n);
set have nobs=n;
run;
%put obs=&obs.;
data result(keep=x y z) ;
array w(&obs.) $ _temporary_;
do i=1 to &obs.;
set have;
w(i)=y;
end;
do i=1 to &obs.;
set have;
if i < &obs. and prxmatch("/\(\w+\)/",w(i+1)) then z=w(i+1);
else z='';
output;
end;
run; [/code:2y9j01hq]