Полное руководство по циклам DO в SAS

Полное руководство по циклам 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. DO WHILE Цикл

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; 

Обратите внимание, что цикл перестал создавать строки, как только x достиг 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.