Как использовать оператор do while в sas


Вы можете использовать оператор DO WHILE в SAS для повторного выполнения цикла , пока условие остается истинным.

Следующие примеры показывают два разных способа использования этой инструкции на практике.

Пример 1: оператор DO WHILE в SAS

Следующий код показывает, как использовать оператор DO WHILE в SAS для создания набора данных, содержащего две переменные с именами var1 и var2 , которые продолжают генерировать новые значения , даже если значение var1 меньше 100:

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

var1 = 1;
var2 = 1;

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

end ;

run ;

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

Оператор DO WHILE продолжал генерировать новые значения для var1 и var2 , хотя значение var1 было меньше 100.

Как только значение var1 превысило 100, оператор DO WHILE остановился и новые значения перестали добавляться в набор данных.

Пример 2: оператор DO WHILE с оператором TO в SAS

В следующем коде показано, как использовать оператор DO WHILE с оператором TO в SAS для создания набора данных, содержащего две переменные с именами var1 и var2 , которые продолжают генерировать новые значения , даже если значение var1 меньше 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;

Инструкция TO предписывала SAS попытаться сгенерировать значения для var2 в диапазоне от 1 до 5, но только тогда, когда значение var1 было меньше 10.

Как только значение var1 превысило 10, оператор DO WHILE остановился и новые значения перестали добавляться в набор данных.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как использовать IF-THEN-DO в SAS
Как использовать IF-THEN-ELSE в SAS
Как удалить дубликаты в SAS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *