ETL SASHELP_DATA_SET

Beispiele: WHERE-Verarbeitung

Dieser Code ist auch verfügbar auf: English Français
Wartet auf Validierung
Dieser Leitfaden erläutert detailliert die Verwendung von WHERE-Ausdrücken in SAS© DATA Steps. Er veranschaulicht die Auswahl von Zeilen basierend auf einfachen Bedingungen, zusammengesetzten WHERE-Ausdrücken mit logischen Operatoren (AND, OR, NOT) und den Einfluss der Auswertungsreihenfolge. Spezifische Beispiele zeigen die Anwendung der WHERE=-Option für Datasets, wobei der Unterschied zwischen der Verarbeitung auf dem SAS© Compute Server und dem CAS Server hervorgehoben wird. Die Leistungsverbesserung durch Indizierung von Datasets wird ebenfalls behandelt. Zu den Schlüsselideen gehören die Fähigkeit von WHERE-Ausdrücken, die Leistung durch Reduzierung der gelesenen Zeilen zu verbessern, ihre Anwendbarkeit in SAS©- und CAS-Umgebungen und die Bedeutung der Verwendung von Klammern zur Steuerung der Auswertungsreihenfolge boolescher Operatoren.
Datenanalyse

Type : SASHELP_DATA_SET


Die Beispiele verwenden die integrierten SASHELP-Datasets SASHELP.SHOES, SASHELP.CLASS und SASHELP.BASEBALL.

1 Codeblock
DATA STEP Data
Erklärung :
Dieses Beispiel verwendet die WHERE-Anweisung, um Zeilen bedingt aus dem Dataset sashelp.class auszuwählen und die ausgewählten Zeilen in die Tabelle mylib.shoes zu schreiben. Der erste DATA Step wird in SAS ausgeführt und erstellt eine Untermenge der Daten, wobei nur Zeilen ausgewählt werden, in denen der Umsatz größer oder gleich 500.000 $ ist. Die gefilterten Daten werden in die Ausgabetabelle mylib.shoes geladen. Der zweite DATA Step wird für die Tabelle mylib.shoes ausgeführt, um die Daten weiter zu untergliedern. Dieser DATA Step wählt nur Zeilen aus, in denen die Werte der Variablen Region "Canada" sind. Die ausgewählten Zeilen werden dann in die Ausgabetabelle mylib.shoes2 geschrieben.
Kopiert!
1LIBNAME mylib ;
2 
3DATA mylib.shoes;
4 SET sashelp.shoes;
5 where Sales>=500000;
6RUN;
7PROC PRINT DATA=mylib.shoes;
8 var Region Product Sales;
9 RUN;
10 
11DATA mylib.shoes2;
12 SET mylib.shoes;
13 where Region="Canada";
14RUN;
15 
16PROC PRINT DATA=mylib.shoes2;
17 var Region Product Sales;
18RUN;
2 Codeblock
DATA STEP Data
Erklärung :
Dieses Beispiel verwendet einen zusammengesetzten WHERE-Ausdruck, um eine Untermenge der Daten aus der Eingabetabelle mylib.shoes auszuwählen. Die CASUTIL-Prozedur lädt zuerst das SAS-Dataset sashelp.shoes in CAS. Der DATA Step wird dann in CAS ausgeführt, um bedingt Zeilen auszuwählen, in denen der Umsatz größer oder gleich 500.000 $ UND die Region "Canada" ist. Der zusammengesetzte WHERE-Ausdruck besteht aus zwei WHERE-Ausdrücken, die durch den AND-Operator verbunden sind.
Kopiert!
1 
2DATA mylib.shoes;
3 SET mylib.shoes;
4 where Sales>=500000 and Region="Canada";
5 keep Region Product Sales;
6RUN;
7 
8PROC PRINT DATA=mylib.shoes; RUN;
3 Codeblock
DATA STEP Data
Erklärung :
Im folgenden Beispiel wird der AND-Operator in der WHERE-Anweisung verwendet, um Zeilen basierend auf den Bedingungen für Alter und Geschlecht zu finden.
Kopiert!
1DATA class;
2 SET sashelp.class;
3 where sex="M" and age >= 15;
4RUN;
5PROC PRINT DATA=class;
6RUN;
4 Codeblock
DATA STEP Data
Erklärung :
Dieses Beispiel verwendet den OR-Operator, um Zeilen zu finden, die eine der beiden Bedingungen erfüllen.
Kopiert!
1DATA class;
2 SET sashelp.class;
3 where sex="M" or age>=15;
4RUN;
5PROC PRINT DATA=class;
6 title 'OR finds all Males and Anyone 15 Years or Older';
7RUN;
5 Codeblock
DATA STEP Data
Erklärung :
Dieses Beispiel verwendet das Kleiner-als-Symbol (<), um Zeilen zu finden, die die Kriterien für Alter und Geschlecht erfüllen.
Kopiert!
1DATA class;
2 SET sashelp.class;
3 where age < 15 and sex NE "M";
4RUN;
5PROC PRINT DATA=class;
6 title 'Finds Females
7 Older less than 15 Years';
8RUN;
6 Codeblock
DATA STEP Data
Erklärung :
Die Reihenfolge, in der SAS Ausdrücke verarbeitet, die durch boolesche Operatoren verbunden sind, beeinflusst die Ausgabe. Die Standardreihenfolge der Operationen ist, NOT-Ausdrücke zuerst, dann AND-Ausdrücke und zuletzt OR-Ausdrücke zu verarbeiten.
Kopiert!
1DATA class;
2 SET sashelp.class;
3 where age>15 or height<60 and sex="F";
4RUN;
5PROC PRINT DATA=class;
6 title 'age > 15 OR height < 60 AND sex = F';
7RUN;
7 Codeblock
DATA STEP Data
Erklärung :
Verwenden Sie Klammern, um die Auswertungsreihenfolge zu steuern. Hier ist dasselbe Beispiel, außer dass Klammern verwendet werden, um festzulegen, dass der OR-Ausdruck zuerst ausgewertet wird, dann der AND-Ausdruck.
Kopiert!
1DATA class;
2 SET sashelp.class;
3 where (age>15 or height<60) and sex="F";
4RUN;
5PROC PRINT DATA=class;
6 title '(age > 15 OR height < 60) AND sex = F';
7RUN;
8 Codeblock
DATA STEP Data
Erklärung :
Dieses Beispiel verwendet die Dataset-Option WHERE=, um Zeilen bedingt aus dem Dataset sashelp.shoes auszuwählen.
Kopiert!
1DATA sales;
2 SET sashelp.shoes(where=(Region="Canada" and Sales<2000));
3RUN;
4PROC PRINT DATA=sales; RUN;
9 Codeblock
DATA STEP
Erklärung :
Um den DATA Step so auszuführen, dass die Verarbeitung auf dem CAS-Server erfolgt, können Sie die Dataset-Option WHERE= für die Eingabetabelle in der SET-Anweisung angeben. Die Dataset-Option WHERE= wird für die Verarbeitung in CAS nur unterstützt, wenn sie für die Eingabe-CAS-Tabelle (in der SET-Anweisung) angegeben wird. Wenn Sie die Dataset-Option WHERE= für die Ausgabe-CAS-Tabelle angeben, erhalten Sie keine Fehlermeldung, wie das folgende Beispiel zeigt.
Kopiert!
1/* Specify the WHERE= data set option on the output CAS
2 table (unsupported for CAS DATA step processing) */
3 
4DATA mylib.sales(where=(Region="Canada" and Sales<2000));
5 SET mylib.shoes;
6RUN;
7PROC PRINT DATA=mylib.sales; RUN;
10 Codeblock
DATA STEP Data
Erklärung :
Im folgenden Beispiel erstellt der erste DATA Step ein Ausgabe-Dataset, mybaseball, und die Option index= fügt der Variablen team einen einfachen Index hinzu. Der zweite DATA Step liest das Dataset und wählt nur Zeilen zur Verarbeitung aus, in denen der Teamname Atlanta ist.
Kopiert!
1DATA mybaseball(index=(team));
2 SET sashelp.baseball;
3RUN;
4 
5DATA mybaseball;
6 SET sashelp.baseball;
7 where Team="Atlanta";
8 keep Name Team Position;
9RUN;
10PROC PRINT DATA=mybaseball; RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright © SAS Institute Inc. All Rights Reserved