Comment utiliser IF-THEN-ELSE dans SAS (avec exemples)



Vous pouvez utiliser une instruction IF-THEN-ELSE dans SAS pour renvoyer une valeur si une condition est vraie, sinon renvoyer une autre valeur si une condition n’est pas vraie.

Cette instruction utilise la syntaxe de base suivante :

if var1 > 30 then var2 = 'good';
else var2 = 'bad';

Vous pouvez également enchaîner plusieurs instructions ELSE IF pour renvoyer davantage de valeurs potentielles en fonction de davantage de conditions :

if var1 > 35 then var2 = 'great';
else if var1 > 30 then var2 = 'good';
else var2 = 'bad';

Les exemples suivants montrent comment utiliser chacune de ces instructions en pratique avec l’ensemble de données suivant dans SAS :

/*create dataset*/
data original_data;
    input team $ points;
    datalines;
Cavs 12
Cavs 14
Warriors 15
Hawks 18
Mavs 31
Mavs 32 
Mavs 35
Celtics 36
Celtics 40
;
run;

/*view dataset*/
proc print data=original_data;

Exemple 1 : IF-THEN-ELSE en SAS

Nous pouvons utiliser l’instruction IF-THEN-ELSE suivante pour créer une nouvelle variable appelée note qui prend la valeur « bon » si la valeur dans la colonne de points est supérieure à 30 ou la valeur « mauvais » dans le cas contraire :

/*create new dataset with new variable called rating*/
data new_data;
    set original_data;
    if points > 30 then rating = 'good';
    else rating = 'bad';
run;

/*view new dataset*/
proc print data=new_data;

Notez que la nouvelle colonne appelée note prend la valeur « bon » si la valeur de la colonne points est supérieure à 30 ou la valeur « mauvais » dans le cas contraire.

Exemple 2 : IF-THEN-ELSE IF en SAS

Nous pouvons utiliser l’instruction IF-THEN-ELSE IF suivante pour créer une nouvelle variable appelée rating qui prend les valeurs suivantes :

  • « super » si les points sont supérieurs à 35
  • sinon, « bon » si les points sont supérieurs à 30
  • sinon, « mauvais »

Le code suivant montre comment procéder :

/*create new dataset with new variable called rating*/
data new_data;
    set original_data;
    if points > 35 then rating = 'great';
    else if points > 30 then rating = 'good';
    else rating = 'bad';
run;

/*view new dataset*/
proc print data=new_data;

La nouvelle colonne appelée note prend la valeur « excellent », « bon » ou « mauvais » en fonction de la valeur correspondante dans la colonne des points .

Remarque : N’hésitez pas à utiliser autant d’instructions ELSE IF que vous le souhaitez pour renvoyer autant de valeurs différentes que vous le souhaitez en fonction de diverses conditions.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans SAS :

Comment utiliser IF-THEN-DO dans SAS
Comment supprimer les doublons dans SAS
Comment remplacer les valeurs manquantes par zéro dans SAS

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *