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