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

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

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