Як використовувати оператор 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *