Kompletny przewodnik po pętlach do w sas-ie
Pętli DO w SAS-ie można użyć do wykonania akcji określoną liczbę razy.
W SAS-ie istnieją trzy podstawowe pętle DO:
1. ZROB pętlę
data data1;
x = 0;
do i = 1 to 10;
x = i*4;
output ;
end ;
run ;
Co robi : Ta pętla wykonuje 10 iteracji, od i = 1 do 10, gdzie wartość w każdym wierszu jest równa i pomnożona przez 4.
Kiedy się zatrzymuje : Ta pętla zatrzymuje się dopiero po 10 iteracjach.
2. ZRÓB W PĘTLI
data data2;
x = 0;
do i = 1 to 10 while(x < 20 );
x = i*4;
output ;
end ;
run ;
Co robi : Ta pętla podejmie próbę wykonania 10 iteracji, od i = 1 do 10, gdzie wartość każdego wiersza jest równa i pomnożona przez 4.
Kiedy się zatrzyma : Ta pętla zatrzyma się, gdy wartość x przekroczy 20 lub gdy zostanie ukończonych 10 iteracji, w zależności od tego, co nastąpi wcześniej.
3. Wykonaj aż do pętli
data data3;
x = 0;
do i = 1 to 10 until(x > 30 );
x = i*4;
output ;
end ;
run ;
Co robi : Ta pętla podejmie próbę wykonania 10 iteracji, od i = 1 do 10, gdzie wartość każdego wiersza jest równa i pomnożona przez 4.
Kiedy się zatrzyma : pętla zatrzyma się, gdy wartość x przekroczy 30 lub gdy zostanie ukończonych 10 iteracji, w zależności od tego, co nastąpi wcześniej.
Poniższe przykłady pokazują, jak w praktyce używać każdej pętli DO.
Przykład 1: pętla DO
Możemy użyć następującej pętli DO , aby utworzyć zestaw danych składający się z 10 wierszy:
/*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;
Wynikiem jest zbiór danych zawierający 10 wierszy, gdzie wartości w kolumnie i mieszczą się w zakresie od 1 do 10, a wartości w kolumnie x mieszczą się w zakresie od 4 do 40.
Pamiętaj, że możesz użyć drop i , aby usunąć kolumnę indeksu ze zbioru danych:
/*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;
Przykład 2: Pętla DO WHILE
Możemy użyć następującej pętli DO WHILE, aby utworzyć zbiór danych ze zmienną i od i = 1 do 10, gdzie wartość każdego wiersza jest równa i pomnożona przez 4 , podczas gdy x jest mniejsze niż 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;
Zauważ, że pętla przestała tworzyć wiersze, gdy xa osiągnęło 20.
Przykład 3: Pętla DO UNTIL
Możemy użyć następującej pętli DO UNTIL , aby utworzyć zbiór danych ze zmienną i od i = 1 do 10, gdzie wartość każdego wiersza jest równa i pomnożona przez 4, aż x będzie większe niż 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;
Zauważ, że pętla przestała tworzyć wiersze, gdy x przekroczyło 30.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w SAS-ie:
Jak normalizować dane w SAS-ie
Jak usunąć duplikaty w SAS-ie
Jak zastąpić brakujące wartości zerem w SAS-ie