Sas: verwendung von contains in proc sql


Sie können den CONTAINS- Operator in der SQL PROC- Anweisung in SAS verwenden, um nur Zeilen zurückzugeben, in denen eine Variable in einem Datensatz ein Zeichenfolgenmuster enthält.

Die folgenden Beispiele zeigen, wie der CONTAINS- Operator in der Praxis mit dem folgenden Datensatz in SAS verwendet wird , der Informationen über verschiedene Basketballspieler enthält:

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

Beispiel 1: Zeilen auswählen, in denen die Variable ein Muster enthält

Wir können den CONTAINS- Operator in PROC SQL verwenden, um nur Zeilen auszuwählen, in denen das Team das „avs“-Muster irgendwo im Namen enthält:

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

Beachten Sie, dass nur Zeilen zurückgegeben werden, in denen das Team irgendwo im Namen „avs“ enthält.

Beispiel 2: Wählen Sie Zeilen aus, in denen die Variable eines von mehreren Mustern enthält

Wir können den CONTAINS- Operator in PROC SQL verwenden, um nur die Zeilen auszuwählen, in denen das Team irgendwo im Namen das „avs“-Muster oder das „ics“-Muster enthält:

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

Es werden nur Zeilen zurückgegeben, in denen das Team irgendwo im Namen „avs“ oder „ics“ enthält.

Beispiel 3: Zeilen auswählen, in denen die Variable kein Muster enthält

Das Gegenteil des CONTAINS- Operators in PROC SQL ist NOT CONTAINS , der Zeilen auswählt, in denen bestimmte Variablen in einem Datensatz kein bestimmtes Zeichenfolgenmuster enthalten.

Der folgende Code zeigt, wie Sie mit dem NOT CONTAINS -Operator alle Zeilen auswählen, deren Teamname nicht „avs“ enthält:

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

Beachten Sie, dass nur Zeilen zurückgegeben werden, in denen das Team nicht irgendwo im Namen „avs“ enthält.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in SAS ausführen:

SAS: So verwenden Sie UNION in PROC SQL
SAS: So verwenden Sie EXCEPT in PROC SQL
SAS: So verwenden Sie den IN-Operator in PROC SQL
SAS: So verwenden Sie den WHERE-Operator in PROC SQL

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert