Comment utiliser l’option IN= dans SAS



Vous pouvez utiliser l’option IN= dans SAS pour créer une variable booléenne qui indique si l’observation actuelle provient ou non de l’ensemble de données d’entrée.

L’option IN= est couramment utilisée lorsque vous ajoutez deux ensembles de données ensemble et que vous souhaitez savoir si une ligne particulière de l’ensemble de données résultant provient de l’un des ensembles de données d’entrée spécifiques.

L’exemple suivant montre comment utiliser l’option IN= dans la pratique.

Exemple : Comment utiliser l’option IN= dans SAS

Supposons que nous disposions de deux ensembles de données contenant des informations sur les joueurs de basket-ball des conférences Est et Ouest de la NBA :

/*create East dataset*/
data east_data;
    input team $ points;
    datalines;
Celtics 22
Pistons 14
Nets 35
Hornets 19
Magic 22
;
run;

/*create West dataset*/
data west_data;
    input team $ points;
    datalines;
Mavs 40
Rockets 39
Warriors 23
Lakers 19
Clippers 25
;
run;

/*view datasets*/
proc print data=east_data;
proc print data=west_data;

Nous pouvons utiliser la syntaxe suivante pour créer un nouvel ensemble de données qui ajoute ces deux ensembles de données :

/*create new dataset*/
data all_data;
    set east_data west_data;
run;

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

Notez que chaque ligne de chaque ensemble de données appartient au nouvel ensemble de données.

Pour savoir de quel ensemble de données provient chaque ligne, nous pouvons utiliser l’option IN= comme suit :

/*create new dataset*/
data all_data;
    set east_data west_data(in=i);
    if i then conf='West';
    else conf='East';
run;

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

En utilisant l’option IN= , nous pouvons créer une nouvelle colonne appelée conf qui prend la valeur « Est » si la ligne provient de l’ensemble de données appelé east_data et la valeur « Ouest » si la ligne provient de l’ensemble de données appelé ouest_data .

Notez que nous pourrions également utiliser uniquement une instruction IF sans instruction ELSE pour créer une nouvelle colonne qui prend simplement la valeur * si la ligne provient de l’ensemble de données appelé east_data :

/*create new dataset*/
data all_data;
    set east_data(in=i) west_data;
    if i then east_conf='*';
run;

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

En utilisant l’option IN= , nous pouvons créer une nouvelle colonne appelée east_conf qui prend la valeur * si la ligne provient de l’ensemble de données appelé east_data et aucune valeur si la ligne provient de l’ensemble de données appelé west_data .

Ressources additionnelles

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

Comment utiliser l’opérateur NOT EQUAL dans SAS
Comment utiliser un opérateur « NOT IN » dans SAS
Comment fusionner si A et non B dans SAS

Ajouter un commentaire

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