08liurenxing 发表于 2010-3-23 09:09 
不过程序太复杂,看不懂都,哎呀,啥时候我要是会熟练写宏就好了。
Give you a simple code without macro.
DATA test;;
input x1 x2 x3 X4 X5;
cards;
1 2 3 4 4
2 3 4 1 4
3 2 1 4 1
1 2 3 4 1
;
data freq(keep=level freq1-freq5);
set test end=last;
array tpvar{5} x1-x5;
array myfre{4,5} _temporary_ (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
do i=1 to dim(tpvar);
myfre{tpvar{i},i }=myfre{tpvar{i},i }+1;
end;
if last then do;
do level=1 to 4 ;
freq1=myfre{level,1}; freq2=myfre{level,2};
freq3=myfre{level,3};freq4=myfre{level,4}; freq5=myfre{level,5};
output;
end;
end;
run;
proc print noobs; run;