Le guide complet des boucles DO dans SAS
Une boucle DO dans SAS peut être utilisée pour effectuer une action un certain nombre de fois.
Il existe trois boucles DO de base dans SAS :
1. FAIRE la boucle
data data1;
x = 0;
do i = 1 to 10;
x = i*4;
output;
end;
run;
Ce qu’elle fait : Cette boucle effectue 10 itérations, de i = 1 à 10, où la valeur de chaque ligne est égale à i multiplié par 4.
Quand il s’arrête : Cette boucle ne s’arrête qu’après 10 itérations.
2. Boucle FAIRE PENDANT
data data2;
x = 0;
do i = 1 to 10 while(x < 20);
x = i*4;
output;
end;
run;
Ce qu’elle fait : Cette boucle tentera d’effectuer 10 itérations, de i = 1 à 10, où la valeur de chaque ligne est égale à i multiplié par 4.
Quand elle s’arrête : Cette boucle s’arrêtera lorsque la valeur de x dépassera 20 ou lorsque 10 itérations auront été effectuées, selon la première éventualité.
3. Faire jusqu’à ce que la boucle
data data3;
x = 0;
do i = 1 to 10 until(x > 30);
x = i*4;
output;
end;
run;
Ce qu’elle fait : Cette boucle tentera d’effectuer 10 itérations, de i = 1 à 10, où la valeur de chaque ligne est égale à i multiplié par 4.
Quand elle s’arrête : Cette boucle s’arrêtera lorsque la valeur de x dépassera 30 ou lorsque 10 itérations auront été effectuées, selon la première éventualité.
Les exemples suivants montrent comment utiliser chaque boucle DO dans la pratique.
Exemple 1 : boucle DO
Nous pouvons utiliser la boucle DO suivante pour créer un ensemble de données de 10 lignes :
/*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;
Le résultat est un ensemble de données contenant 10 lignes où les valeurs de la colonne i vont de 1 à 10 et les valeurs de la colonne x vont de 4 à 40.
Notez que vous pouvez utiliser drop i pour supprimer la colonne d’index de l’ensemble de données :
/*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;
Exemple 2 : boucle DO WHILE
Nous pouvons utiliser la boucle DO WHILE suivante pour créer un ensemble de données avec une variable i de i = 1 à 10, où la valeur de chaque ligne est égale à i multiplié par 4 tandis que x est inférieur à 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;
Notez que la boucle a arrêté de créer des lignes une fois que x a atteint 20.
Exemple 3 : boucle DO JUSQU’À
Nous pouvons utiliser la boucle DO UNTIL suivante pour créer un ensemble de données avec une variable i de i = 1 à 10, où la valeur de chaque ligne est égale à i multiplié par 4 jusqu’à ce que x soit supérieur à 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;
Notez que la boucle a arrêté de créer des lignes une fois que x a dépassé 30.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans SAS :
Comment normaliser les données dans SAS
Comment supprimer les doublons dans SAS
Comment remplacer les valeurs manquantes par zéro dans SAS