全部用DATA步完成,不需要调用复杂的宏程序以及SQL,效率要高些。
data crackman;
fen="woody";
wodu="sinacom";
do i=1 to 100;
x=ranuni(90);
y=x*1.567;
z=x+y;
m=0;
output;
end;
run;
data a;
set crackman;
keep _numeric_;
call symput('obs',compress(attrn(open('work.a','i'),'nobs')));
run;
data b;
set crackman;
keep _character_;
run;
proc transpose data=a out=c;
var _all_;
run;
data c;
set c;
array s col1-col&obs.;
if col1-col&obs.^=0 then output;
run;
proc transpose data=c out=c;
ID _NAME_;
run;
data c;
set c;
drop _name_;
run;
data result;
merge c b;
run;