Повний посібник із циклів 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