Der vollständige leitfaden zu do-schleifen in sas
Eine DO-Schleife in SAS kann verwendet werden, um eine Aktion eine bestimmte Anzahl von Malen auszuführen .
Es gibt drei grundlegende DO-Schleifen in SAS:
1. MACHEN Sie die Schleife
data data1;
x = 0;
do i = 1 to 10;
x = i*4;
output ;
end ;
run ;
Was es tut : Diese Schleife führt 10 Iterationen von i = 1 bis 10 durch, wobei der Wert jeder Zeile gleich i multipliziert mit 4 ist.
Wenn es stoppt : Diese Schleife stoppt erst nach 10 Iterationen.
2. Führen Sie eine DURING-Schleife aus
data data2;
x = 0;
do i = 1 to 10 while(x < 20 );
x = i*4;
output ;
end ;
run ;
Was es tut : Diese Schleife versucht, 10 Iterationen von i = 1 bis 10 durchzuführen, wobei der Wert jeder Zeile gleich i multipliziert mit 4 ist.
Wenn es stoppt : Diese Schleife stoppt, wenn der Wert von x 20 überschreitet oder wenn 10 Iterationen abgeschlossen wurden, je nachdem, was zuerst eintritt.
3. Machen Sie bis zur Schleife
data data3;
x = 0;
do i = 1 to 10 until(x > 30 );
x = i*4;
output ;
end ;
run ;
Was es tut : Diese Schleife versucht, 10 Iterationen von i = 1 bis 10 durchzuführen, wobei der Wert jeder Zeile gleich i multipliziert mit 4 ist.
Wenn es stoppt : Diese Schleife stoppt, wenn der Wert von x 30 überschreitet oder wenn 10 Iterationen abgeschlossen wurden, je nachdem, was zuerst eintritt.
Die folgenden Beispiele zeigen, wie die einzelnen DO-Schleifen in der Praxis verwendet werden.
Beispiel 1: DO-Schleife
Wir können die folgende DO-Schleife verwenden, um einen Datensatz mit 10 Zeilen zu erstellen:
/*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;
Das Ergebnis ist ein Datensatz mit 10 Zeilen, wobei die Werte in Spalte i zwischen 1 und 10 und die Werte in Spalte x zwischen 4 und 40 liegen.
Beachten Sie, dass Sie drop i verwenden können, um die Indexspalte aus dem Datensatz zu löschen:
/*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;
Beispiel 2: DO WHILE-Schleife
Wir können die folgende DO WHILE-Schleife verwenden, um einen Datensatz mit der Variablen i von i = 1 bis 10 zu erstellen, wobei der Wert jeder Zeile gleich i multipliziert mit 4 ist , während x kleiner als 20 ist:
/*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;
Beachten Sie, dass die Schleife aufgehört hat, Zeilen zu erstellen, sobald xa 20 erreicht hat.
Beispiel 3: DO UNTIL-Schleife
Wir können die folgende DO UNTIL-Schleife verwenden, um einen Datensatz mit der Variablen i von i = 1 bis 10 zu erstellen, wobei der Wert jeder Zeile gleich i multipliziert mit 4 ist , bis x größer als 30 ist:
/*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;
Beachten Sie, dass die Schleife die Erstellung von Zeilen beendet hat, sobald x 30 überschritten hat.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in SAS ausführen:
So normalisieren Sie Daten in SAS
So entfernen Sie Duplikate in SAS
So ersetzen Sie fehlende Werte in SAS durch Null