我不清楚你的频数考不考虑顺序,
比如
a b c d e
1 2 3 4 5
5 4 3 2 1
这两行是否是同一个组合?
如果是,参考这段:
proc datasets lib=work nodetails nolist;delete out;run;
data a;
input a b c d e;
cards;
1 2 3 4 5
3 4 5 6 1
1 3 4 5 6
1 3 4 5 1
5 4 3 2 1
;
data _null_;
set a end=eof;
if eof then call symput('n',left(_n_));
run;
data out;run;
%macro loop();
%do i=1 %to &n;
data out&i;
set a;
if _n_=&i;
run;
proc transpose data=out&i out=out&i(drop=_label_ _name_);
var _numeric_;
run;
proc sort data=out&i out=out&i;by col1;run;
proc transpose data=out&i out=out&i;
var col1;
run;
data out;
set out out&i;
drop _name_;
run;
%end;
data out;set out;if _n_^=1;run;
%mend;
%loop();
data t;
set out;
x=catx(',',col1,col2,col3,col4,col5);
run;
proc sql;select distinct x,count(*) as num from t group by x order by calculated num desc;quit;
如果不是,前面的loop都不需要了,直接从catx那步做起。


雷达卡
京公网安备 11010802022788号







