Повний посібник із циклів do в sas


Цикл DO в SAS можна використовувати для виконання дії певну кількість разів.

У SAS є три основні цикли DO:

1. ЗРОБИТИ петлю

 data data1;
x = 0;
do i = 1 to 10;
   x = i*4;
   output ;
end ;
run ;

Що він робить : цей цикл виконує 10 ітерацій, від i = 1 до 10, де значення кожного рядка дорівнює i, помноженому на 4.

Коли він зупиняється : цей цикл зупиняється лише після 10 ітерацій.

2. Виконайте петлю DURING

 data data2;
x = 0;
do i = 1 to 10 while(x < 20 );
   x = i*4;
   output ;
end ;
run ;

Що він робить : цей цикл намагатиметься виконати 10 ітерацій, від i = 1 до 10, де значення кожного рядка дорівнює i, помноженому на 4.

Коли він зупиниться : цей цикл зупиниться, коли значення x перевищить 20 або коли буде завершено 10 ітерацій, залежно від того, що відбудеться раніше.

3. Робити до петлі

 data data3;
x = 0;
do i = 1 to 10 until(x > 30 );
   x = i*4;
   output ;
end ;
run ;

Що він робить : цей цикл намагатиметься виконати 10 ітерацій, від i = 1 до 10, де значення кожного рядка дорівнює i, помноженому на 4.

Коли він зупиниться : цей цикл зупиниться, коли значення x перевищить 30 або коли буде завершено 10 ітерацій, залежно від того, що відбудеться раніше.

Наступні приклади показують, як використовувати кожен цикл DO на практиці.

Приклад 1: цикл DO

Ми можемо використати наступний цикл DO , щоб створити набір даних із 10 рядків:

 /*use DO loop to create dataset*/
data data1;
x = 0;
do i = 1 to 10;
   x = i*4;
   output ;
end ;
run ;

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

Результатом є набір даних, що містить 10 рядків, де значення в стовпці i коливаються від 1 до 10, а значення в стовпці x — від 4 до 40.

Зверніть увагу, що ви можете використовувати drop i , щоб видалити стовпець індексу з набору даних:

 /*use DO loop to create dataset*/
data data1;
x = 0;
do i = 1 to 10;
   x = i*4;
   output ;
end ;
drop i;
run ;

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

Приклад 2: Цикл DO WHILE

Ми можемо використати наступний цикл DO WHILE , щоб створити набір даних зі змінною i від i = 1 до 10, де значення кожного рядка дорівнює i, помноженому на 4 , а x менше 20:

 /*use DO WHILE loop to create dataset*/
data data2;
x = 0;
do i = 1 to 10 while (x < 20 );
   x = i*4;
   output ;
end ;
run ;

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

Зверніть увагу, що цикл припинив створення рядків, коли xa досяг 20.

Приклад 3: Цикл DO UNTIL

Ми можемо використати наступний цикл DO UNTIL , щоб створити набір даних зі змінною i від i = 1 до 10, де значення кожного рядка дорівнює i, помноженому на 4 , доки x не перевищить 30:

 /*use DO UNTIL loop to create dataset*/
data data3;
x = 0;
do i = 1 to 10 until (x > 30 );
   x = i*4;
   output ;
end ;
run ;

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

Зауважте, що цикл перестав створювати рядки, як тільки x перевищило 30.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в SAS:

Як нормалізувати дані в SAS
Як видалити дублікати в SAS
Як замінити пропущені значення на нуль в SAS

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

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