N/A
Posts: 1

# Help with enumerating/listing all combinations

Hi, I hope someone can help me.

I need to enumerate all combinations of 36 from 42 in SAS IML. I have the loops as such:

do i  = 1 to ns-1;

do j = i+1 to ns;

do m = j+1 to ns;

do n = m+1 to ns;

Options[k,1] = i;

Options[k,2] = j;

Options[k,3] = m;

Options[k,4] = n;

Options[k,5] = o;

k=k+1;

end;

end;

end;

end;

Which gives all combinations of 4 from the 42. Is there an easier way for SAS to do this for me rather than adding in so many do loops?

I need this for an allocation problem in which I am looking for the optimal assignment of swimmers to relay teams.

Thank you

SAS Super FREQ
Posts: 4,171

## Re: Help with enumerating/listing all combinations

Use the ALLCOMB function:

proc iml;

n=comb(42,36);      /* how many rows will you get? */

print n;

v = allcomb(42,36); /* create n x 36 matrix */

print (v[1:5,]);    /* print first 5 rows */

For details and other examples in IML, see

For DATA step, see

Super User
Posts: 10,686

## Re: Help with enumerating/listing all combinations

use function ALLCOMB.

```n = 4;
k = 2;
c = allcomb(n, k);
print c;

```
Discussion stats
• 2 replies
• 333 views
• 0 likes
• 3 in conversation