La guida completa ai loop do in sas


Un ciclo DO in SAS può essere utilizzato per eseguire un’azione un certo numero di volte.

Esistono tre cicli DO di base in SAS:

1. REALIZZA il cappio

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

Cosa fa : questo ciclo esegue 10 iterazioni, da i = 1 a 10, dove il valore di ogni riga è uguale a i moltiplicato per 4.

Quando si ferma : questo ciclo si ferma solo dopo 10 iterazioni.

2. FARE DURANTE il ciclo

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

Cosa fa : questo ciclo tenterà di eseguire 10 iterazioni, da i = 1 a 10, dove il valore di ciascuna riga è uguale a i moltiplicato per 4.

Quando si ferma : questo ciclo si fermerà quando il valore di x supera 20 o quando sono state completate 10 iterazioni, a seconda di quale evento si verifica per primo.

3. Continua fino al ciclo

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

Cosa fa : questo ciclo tenterà di eseguire 10 iterazioni, da i = 1 a 10, dove il valore di ciascuna riga è uguale a i moltiplicato per 4.

Quando si ferma : questo ciclo si fermerà quando il valore di x supera 30 o quando sono state completate 10 iterazioni, a seconda di quale evento si verifica per primo.

Gli esempi seguenti mostrano come utilizzare nella pratica ciascun ciclo DO.

Esempio 1: ciclo DO

Possiamo utilizzare il seguente ciclo DO per creare un set di dati di 10 righe:

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

Il risultato è un set di dati contenente 10 righe in cui i valori nella colonna i vanno da 1 a 10 e i valori nella colonna x vanno da 4 a 40.

Tieni presente che puoi utilizzare drop i per eliminare la colonna dell’indice dal set di dati:

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

Esempio 2: ciclo DO WHILE

Possiamo utilizzare il seguente ciclo DO WHILE per creare un set di dati con variabile i da i = 1 a 10, dove il valore di ogni riga è uguale a i moltiplicato per 4 mentre x è inferiore a 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; 

Nota che il ciclo smette di creare righe una volta che xa raggiunge 20.

Esempio 3: ciclo DO UNTIL

Possiamo utilizzare il seguente ciclo DO UNTIL per creare un set di dati con variabile i da i = da 1 a 10, dove il valore di ciascuna riga è uguale a i moltiplicato per 4 finché x è maggiore di 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; 

Nota che il ciclo smette di creare righe una volta che x supera 30.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in SAS:

Come normalizzare i dati in SAS
Come rimuovere i duplicati in SAS
Come sostituire i valori mancanti con zero in SAS

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *