How to Use a DO WHILE Statement in SAS

A DO WHILE statement in SAS allows you to execute a set of SAS statements repeatedly until a specific condition is met. It allows you to loop through a SAS dataset until a certain condition is met. The DO WHILE statement must be ended with an END statement and the condition to end the loop must be specified in the WHILE clause. You can also use the CONTINUE statement to skip a certain iteration of the loop.


You can use a DO WHILE statement in SAS to do some loop over and over while some condition remains true.

The following examples show two different ways to use this statement in practice.

Example 1: DO WHILE Statement in SAS

The following code shows how to use a DO WHILE statement in SAS to create a dataset that contains two variables called var1 and var2 that continue to generate new values while the value of var1 is less than 100:

/*create dataset using DO WHILE statement*/
data my_data;

var1 = 1;
var2 = 1;

do while(var1 < 100);
    var1 = var1 + var2; 
    var2 = var1 * var2;
    var1 + 1;
    
output;

end;

run;

/*view dataset*/
proc print data=my_data;

The DO WHILE statement continued to generate new values for var1 and var2 while the value of var1 was less than 100.

Once the value of var1 exceeded 100, the DO WHILE statement stopped and new values stopped being added to the dataset.

Example 2: DO WHILE Statement with TO Statement in SAS

The following code shows how to use a DO WHILE statement with a TO statement in SAS to create a dataset that contains two variables called var1 and var2 that continue to generate new values while the value of var1 is less than 10:

/*create dataset using DO WHILE statement with TO statement*/
data my_data;

var1 = 0; 

do var2 = 1 to 5 while(var1 < 10);   
    var1 = var2**3;
    
output;

end;

run;

/*view dataset*/
proc print data=my_data;

The TO statement told SAS to attempt to generate values for var2 ranging from 1 to 5 but only while the value of var1 was less than 10.

Once the value of var1 exceeded 10, the DO WHILE statement stopped and new values stopped getting added to the dataset.

The following tutorials explain how to perform other common tasks in SAS:

x