Solved
Contributor
Posts: 28

# Get the combinations with do loop

What I want is to create a dataset which has three columns. The first column is digit(1-5). The second column is (A-C). The third column is a random number(0,1)

The sample:

```1    A    0.1
1    B    0.2
1    C    0.5
2    A    0.8
2    B    0.3
2    C    0.5
3    A    0.2
3    B    0.2
3    C    0.3
...
5    A    0.3
5    B    0.9
5    C    0.3    ```

My code:

```data DESIGN(drop=i j k);
array result[3] \$ Block Treatment RandomDigit;
do i = 1 to 5;
do j = 1 to 3;
do k = 1 to 3;
if(k=1) then result[i] = i;
if(k=2) then result[i]=j;
if(k=3) then result[i]=RAND("Uniform");

end;
end;
end;
datalines;
run;```

Thanks for correct my errors.

Accepted Solutions
Solution
‎10-29-2016 08:12 PM
Posts: 5,621

## Re: Get the combinations with do loop

Posted in reply to sas_newbie3

You have many SAS programming concepts mixed up in your code. Understanding how the following code works should help you:

``````data design;
call streamInit(7768756); /* seed for random numbers */
do block = 1 to 5;
do treatment = "A", "B", "C";
randomDigit = round(rand("UNIFORM"), 0.1);
output;
end;
end;
run;

proc print; run;
``````
PG

All Replies
Solution
‎10-29-2016 08:12 PM
Posts: 5,621

## Re: Get the combinations with do loop

Posted in reply to sas_newbie3

You have many SAS programming concepts mixed up in your code. Understanding how the following code works should help you:

``````data design;
call streamInit(7768756); /* seed for random numbers */
do block = 1 to 5;
do treatment = "A", "B", "C";
randomDigit = round(rand("UNIFORM"), 0.1);
output;
end;
end;
run;

proc print; run;
``````
PG
Super User
Posts: 13,913

## Re: Get the combinations with do loop

Posted in reply to sas_newbie3

The ability to use lists of values in Do loops and to use Character values as loop indices is one of the nice things about SAS. There were a few times when I was coding in FORTRAN I would cheerfully have taken a compiler designer out for drinks if they would include such things.

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
• 2 replies
• 397 views
• 3 likes
• 3 in conversation