SAS : Comment utiliser CONTAINS dans PROC SQL



Vous pouvez utiliser l’opérateur CONTAINS dans l’instruction SQL PROC dans SAS pour renvoyer uniquement les lignes dans lesquelles une variable d’un ensemble de données contient un modèle de chaîne.

Les exemples suivants montrent comment utiliser l’opérateur CONTAINS en pratique avec l’ensemble de données suivant dans SAS qui contient des informations sur divers joueurs de basket-ball :

/*create dataset*/
data my_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=my_data;

Exemple 1 : sélectionner les lignes dans lesquelles la variable contient un modèle

Nous pouvons utiliser l’opérateur CONTAINS dans PROC SQL pour sélectionner uniquement les lignes où l’équipe contient le modèle « avs » quelque part dans le nom :

/*select all rows where team contains 'avs'*/ 
proc sql;
   select *
   from my_data
   where team contains 'avs';
quit;

Notez que seules les lignes où l’équipe contient « avs » quelque part dans le nom sont renvoyées.

Exemple 2 : sélectionner les lignes dans lesquelles la variable contient l’un des plusieurs modèles

Nous pouvons utiliser l’opérateur CONTAINS dans PROC SQL pour sélectionner uniquement les lignes où l’équipe contient le modèle « avs » ou le modèle « ics » quelque part dans le nom :

/*select all rows where team contains 'avs' or 'ics'*/ 
proc sql;
   select *
   from my_data
   where team contains 'avs' or team contains 'ics';
quit;

Seules les lignes où l’équipe contient « avs » ou « ics » quelque part dans le nom sont renvoyées.

Exemple 3 : sélectionner les lignes dans lesquelles la variable ne contient pas de modèle

L’opposé de l’opérateur CONTAINS dans PROC SQL est NOT CONTAINS , qui sélectionne les lignes dans lesquelles certaines variables d’un ensemble de données ne contiennent pas un certain modèle de chaîne.

Le code suivant montre comment utiliser l’opérateur NOT CONTAINS pour sélectionner toutes les lignes dont le nom de l’équipe ne contient pas « avs » :

/*select all rows where team does not contain 'avs'*/
proc sql;
   select *
   from my_data
   where team not contains 'avs';
quit;

Notez que seules les lignes dans lesquelles l’équipe ne contient pas « avs » quelque part dans le nom sont renvoyées.

Ressources additionnelles

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

SAS : Comment utiliser UNION dans PROC SQL
SAS : Comment utiliser EXCEPT dans PROC SQL
SAS : Comment utiliser l’opérateur IN dans PROC SQL
SAS : Comment utiliser l’opérateur WHERE dans PROC SQL

Ajouter un commentaire

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