Generates all permutations of the values of several variables in a minimal change order.
Category: | Combinatorial |
specifies a variable with an integer value that ranges from 1 to the number of permutations.
specifies either all numeric variables, or all character variables that have the same length. The values of these variables are permuted.
Restriction | Specify no more than 18 variables. |
Requirement | Initialize these variables before you execute the ALLPERM function. |
data _null_; array x [4] $3 ('ant' 'bee' 'cat' 'dog'); n=dim(x); nfact=fact(n); do i=1 to nfact+1; change=allperm(i, of x[*]); put i 5. +2 change +2 x[*]; end; run;
1 0 ant bee cat dog 2 3 ant bee dog cat 3 2 ant dog bee cat 4 1 dog ant bee cat 5 3 dog ant cat bee 6 1 ant dog cat bee 7 2 ant cat dog bee 8 3 ant cat bee dog 9 1 cat ant bee dog 10 3 cat ant dog bee 11 2 cat dog ant bee 12 1 dog cat ant bee 13 3 dog cat bee ant 14 1 cat dog bee ant 15 2 cat bee dog ant 16 3 cat bee ant dog 17 1 bee cat ant dog 18 3 bee cat dog ant 19 2 bee dog cat ant 20 1 dog bee cat ant 21 3 dog bee ant cat 22 1 bee dog ant cat 23 2 bee ant dog cat 24 3 bee ant cat dog 25 -1 bee ant cat dog