Sas: come utilizzare contains in proc sql


È possibile utilizzare l’operatore CONTAINS nell’istruzione SQL PROC in SAS per restituire solo le righe in cui una variabile in un set di dati contiene un modello di stringa.

Gli esempi seguenti mostrano come utilizzare in pratica l’operatore CONTAINS con il seguente set di dati in SAS che contiene informazioni su vari giocatori di basket:

 /*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;

Esempio 1: seleziona le righe in cui la variabile contiene un pattern

Possiamo utilizzare l’operatore CONTAINS in PROC SQL per selezionare solo le righe in cui la squadra contiene il pattern “avs” da qualche parte nel nome:

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

Tieni presente che vengono restituite solo le righe in cui la squadra contiene “avs” da qualche parte nel nome.

Esempio 2: selezionare le righe in cui la variabile contiene uno dei diversi modelli

Possiamo utilizzare l’operatore CONTAINS in PROC SQL per selezionare solo quelle righe in cui la squadra contiene il pattern “avs” o il pattern “ics” da qualche parte nel nome:

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

Vengono restituite solo le righe in cui il team contiene “avs” o “ics” da qualche parte nel nome.

Esempio 3: seleziona le righe in cui la variabile non contiene un pattern

L’opposto dell’operatore CONTAINS in PROC SQL è NOT CONTAINS , che seleziona le righe in cui determinate variabili in un set di dati non contengono un determinato modello di stringa.

Il codice seguente mostra come utilizzare l’operatore NOT CONTAINS per selezionare tutte le righe il cui nome del team non contiene “avs”:

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

Tieni presente che vengono restituite solo le righe in cui la squadra non contiene “avs” da qualche parte nel nome.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in SAS:

SAS: come utilizzare UNION in PROC SQL
SAS: come utilizzare EXCEPT in PROC SQL
SAS: come utilizzare l’operatore IN in PROC SQL
SAS: come utilizzare l’operatore WHERE in PROC SQL

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *