%macro test;
%let x1=a1 a2;
%let x2=b;
%let x3=c;
%let x4=d;
%let x5=e;
%let x6=f1 f2 f3;
%let x7=g;
%let x8=h;
%let k=6;
%let ncomb=%sysfunc(comb(8,&k));
%do i=1 %to &ncomb+1;
%syscall allcomb(i, k, x1, x2, x3, x4, x5, x6, x7, x8);
%do j=1 %to 6;
%let n&j=%sysfunc(countw(&&x&j));
%end;
%do m1=1 %to &n1;
%let y1=%scan(&x1,&m1);
%do m2=1 %to &n2;
%let y2=%scan(&x2,&m2);
%do m3=1 %to &n3;
%let y3=%scan(&x3,&m3);
%do m4=1 %to &n4;
%let y4=%scan(&x4,&m4);
%do m5=1 %to &n5;
%let y5=%scan(&x5,&m5);
%do m6=1 %to &n6;
%let y6=%scan(&x6,&m6);
data data&i.x1&m1.x2&m2.x3&m3.x4&m4.x5&m5.x6&m6 (keep=&y1 &y2 &y3 &y4 &y5 &y6);
set yourdata;
run;
%let ncomind&i.x1&m1.x2&m2.x3&m3.x4&m4.x5&m5.x6&m6=&y1 &y2 &y3 &y4 &y5 &y6;
%put ncomind&i.x1&m1.x2&m2.x3&m3.x4&m4.x5&m5.x6&m6=&&ncomind&i.x1&m1.x2&m2.x3&m3.x4&m4.x5&m5.x6&m6;
%end;
%end;
%end;
%end;
%end;
%end;
%end;
%mend;
%test;


雷达卡




京公网安备 11010802022788号







