Veröffentlicht am :
Datenmanipulation CREATION_INTERNE

Beispiele: Verarbeitung von BY-Gruppen im DATA-Schritt

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Die Analyse von BY-Gruppen in SAS© ist eine leistungsstarke Funktion, um Daten selektiv zu verarbeiten. Durch die Verwendung der BY-Anweisung in einem DATA-Schritt können Sie Beobachtungen in Gruppen organisieren, die auf den Werten einer oder mehrerer Variablen basieren. Dies erleichtert die Ausführung spezifischer Operationen (Berechnungen, Aggregationen usw.) für jede Datengruppe und verbessert so die Effizienz und Klarheit des Codes. Das PROC SORT-Verfahren wird in der Regel vor der Verarbeitung von BY-Gruppen verwendet, um die Daten nach den BY-Variablen zu sortieren, da dies eine grundlegende Anforderung ist. Die Option OUT= von PROC SORT ermöglicht die Erstellung eines neuen sortierten Datensatzes, obwohl in einigen Beispielen der ursprüngliche Datensatz ersetzt werden kann. Das Dokument untersucht Anwendungsfälle mit einer einzelnen BY-Variablen, mehreren BY-Variablen und der GROUPFORMAT-Option für die Verwaltung benutzerdefinierter Formate.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden über Datalines generierte Daten, um ihre Autonomie zu gewährleisten.

1 Codeblock
DATA STEP / PROC SORT Data
Erklärung :
Dieses Beispiel zeigt, wie Daten mithilfe einer einzelnen BY-Variablen, `zipCode`, in einem DATA-Schritt gruppiert werden. Der Datensatz `zip` enthält Straßennamen, Städte, Bundesstaaten und Postleitzahlen. Die Gruppen werden durch die Angabe der Variablen `zipCode` in der BY-Anweisung erstellt. Der DATA-Schritt ordnet Postleitzahlen mit denselben Werten in Gruppen an. Die Abbildung zeigt fünf BY-Gruppen, die erstellt werden.
Kopiert!
1DATA zip;
2INPUT zipCode State $ City $ Street $20-29;
3DATALINES;
485730 AZ Tucson Domenic Ln
585730 AZ Tucson Gleeson Pl
633133 FL Miami Rice St
733133 FL Miami Thomas Ave
833133 FL Miami Surrey Dr
933133 FL Miami Trade Ave
1033146 FL Miami Nervia St
1133146 FL Miami Corsica St
1233801 FL Lakeland French Ave
1333809 FL Lakeland Egret Dr
14;
15 
16PROC SORT DATA=zip;
17 BY zipCode;
18RUN;
19 
20DATA zip;
21 SET zip;
22 BY zipCode;
23RUN;
24 
25PROC PRINT DATA=zip noobs;
26 title 'BY-Group Uing a Single Variable: ZipCode';
27RUN;
2 Codeblock
DATA STEP / PROC SORT Data
Erklärung :
Dieses Beispiel zeigt die Ergebnisse der Verarbeitung des Datensatzes `zip` mit zwei BY-Variablen, State und City. Die Abbildung zeigt drei BY-Gruppen. Der Datensatz wird so angezeigt, dass die BY-Variablen State und City zur besseren Lesbarkeit links gedruckt werden. Die Position der BY-Variablen in den Beobachtungen hat keinen Einfluss darauf, wie die Werte gruppiert und geordnet werden.

Die Beobachtungen sind so organisiert, dass die Beobachtungen für Arizona zuerst erscheinen. Die Beobachtungen innerhalb jedes State-Wertes sind nach dem Wert von City geordnet. Jede BY-Gruppe hat eine einzigartige Kombination von Werten für die Variablen State und City. Zum Beispiel ist der BY-Wert der ersten BY-Gruppe `AZ Tucson`, und der BY-Wert der zweiten BY-Gruppe ist `FL Lakeland`.
Kopiert!
1DATA zip;
2INPUT State $ City $ Street $13-22 ZipCode ;
3DATALINES;
4FL Miami Nervia St 33146
5FL Miami Rice St 33133
6FL Miami Corsica St 33146
7FL Miami Thomas Ave 33133
8FL Miami Surrey Dr 33133
9FL Miami Trade Ave 33133
10FL Lakeland French Ave 33801
11FL Lakeland Egret Dr 33809
12AZ Tucson Domenic Ln 85730
13AZ Tucson Gleeson Pl 85730
14;
15 
16 
17PROC SORT DATA=zip;
18 BY State City;
19RUN;
20 
21DATA zip;
22 SET zip;
23 BY State City;
24RUN;
25PROC PRINT DATA=zip noobs;
26 title 'BY Groups with Multiple BY Variables: State City';
27RUN;
3 Codeblock
DATA STEP / PROC FORMAT Data
Erklärung :
Dieses Beispiel verwendet die FORMAT-Prozedur, die GROUPFORMAT-Option und die FORMAT-Anweisung, um einen einfachen Datensatz zu erstellen und zu drucken. Der Eingabedatensatz TEST wird nach aufsteigenden Werten sortiert. Der Datensatz NEWTEST wird nach den formatierten Werten der Variablen Score organisiert. Das Beispiel verwendet die GROUPFORMAT-Option und die FORMAT-Anweisung, um einen einfachen Datensatz zu erstellen und zu drucken.

Hauptideen:
- Die Verarbeitung von BY-Gruppen im DATA-Schritt unter Verwendung der GROUPFORMAT-Option ist identisch mit der Verarbeitung von BY-Gruppen mit formatierten Werten in SAS-Prozeduren. Die Verwendung der GROUPFORMAT-Option ist nützlich, wenn Sie Ihre eigenen Formate definieren, um gruppierte Daten anzuzeigen.
- Die Verwendung der GROUPFORMAT-Option im DATA-Schritt stellt sicher, dass die BY-Gruppen, die Sie zum Erstellen eines Datensatzes verwenden, mit den BY-Gruppen in den PROC-Schritten übereinstimmen, die gruppierte und formatierte Daten melden. GROUPFORMAT bestimmt auch, wie die Variablen FIRST.variable und LAST.variable zugewiesen werden.
Kopiert!
1options
2linesize=80 pagesize=60;
3 
4DATA test;
5 INPUT name $ Score;
6DATALINES;
7Jon 1
8Anthony 3
9Miguel 3
10Joseph 4
11Ian 5
12Jan 6
13;
14PROC FORMAT;
15 value Range 1-2='Low'
16 3-4='Medium'
17 5-6='High';
18RUN;
19 
20DATA newtest;
21 SET test;
22 BY groupformat Score;
23 FORMAT Score Range.;
24RUN;
25 
26PROC PRINT DATA=newtest;
27 title 'Score Categories';
28 var Name Score;
29 BY Score;
30RUN;
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