if you use SAS 9.4, call lexperk routine will make it easy.
data a;
length new_var $3;
array x[3] $3 ('a' 'b' 'c' );
n=dim(x);
k=1;
nperm=perm(n, k);
do j=1 to nperm;
call lexperk(j, k, of x[*]);
new_var=x[1];
output;
end;
k=2;
nperm=perm(n, k);
do j=1 to nperm;
call lexperk(j, k, of x[*]);
new_var=catt(x[1],x[2]);
output;
end;
k=3;
nperm=perm(n, k);
do j=1 to nperm;
call lexperk(j, k, of x[*]);
new_var=catt(x[1],x[2],x[3]);
output;
end;
keep new_var;
run;
proc print;run;


雷达卡
京公网安备 11010802022788号







