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