De complete gids voor do-loops in sas


Een DO-lus in SAS kan worden gebruikt om een actie een bepaald aantal keren uit te voeren .

Er zijn drie fundamentele DO-lussen in SAS:

1. MAAK de lus

 data data1;
x = 0;
do i = 1 to 10;
   x = i*4;
   output ;
end ;
run ;

Wat het doet : Deze lus voert 10 iteraties uit, van i = 1 tot 10, waarbij de waarde van elke rij gelijk is aan i vermenigvuldigd met 4.

Wanneer het stopt : Deze lus stopt pas na 10 iteraties.

2. DOEN TIJDENS lus

 data data2;
x = 0;
do i = 1 to 10 while(x < 20 );
   x = i*4;
   output ;
end ;
run ;

Wat het doet : Deze lus probeert 10 iteraties uit te voeren, van i = 1 tot 10, waarbij de waarde van elke rij gelijk is aan i vermenigvuldigd met 4.

Wanneer het stopt : Deze lus stopt wanneer de waarde van x groter is dan 20 of wanneer 10 iteraties zijn voltooid, afhankelijk van wat zich het eerst voordoet.

3. Doe dit tot aan de lus

 data data3;
x = 0;
do i = 1 to 10 until(x > 30 );
   x = i*4;
   output ;
end ;
run ;

Wat het doet : Deze lus probeert 10 iteraties uit te voeren, van i = 1 tot 10, waarbij de waarde van elke rij gelijk is aan i vermenigvuldigd met 4.

Wanneer het stopt : Deze lus stopt wanneer de waarde van x groter is dan 30 of wanneer 10 iteraties zijn voltooid, afhankelijk van wat zich het eerst voordoet.

De volgende voorbeelden laten zien hoe u elke DO-lus in de praktijk kunt gebruiken.

Voorbeeld 1: DO-lus

We kunnen de volgende DO-lus gebruiken om een dataset van 10 rijen te maken:

 /*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;

Het resultaat is een dataset met 10 rijen waarbij de waarden in kolom i variëren van 1 tot 10 en de waarden in kolom x variëren van 4 tot 40.

Merk op dat u drop i kunt gebruiken om de indexkolom uit de gegevensset te verwijderen:

 /*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; 

Voorbeeld 2: DO WHILE-lus

We kunnen de volgende DO WHILE-lus gebruiken om een dataset te maken met variabele i van i = 1 tot 10, waarbij de waarde van elke rij gelijk is aan i vermenigvuldigd met 4 terwijl x kleiner is dan 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; 

Merk op dat de lus stopte met het maken van rijen zodra xa 20 bereikte.

Voorbeeld 3: DO UNTIL-lus

We kunnen de volgende DO UNTIL-lus gebruiken om een gegevensset te maken met variabele i van i = 1 tot 10, waarbij de waarde van elke rij gelijk is aan i vermenigvuldigd met 4 totdat x groter is dan 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; 

Merk op dat de lus stopte met het maken van rijen zodra x groter was dan 30.

Aanvullende bronnen

In de volgende zelfstudies wordt uitgelegd hoe u andere veelvoorkomende taken in SAS kunt uitvoeren:

Gegevens normaliseren in SAS
Hoe duplicaten in SAS te verwijderen
Hoe ontbrekende waarden te vervangen door nul in SAS

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert