Veröffentlicht am :

Datenflussanalyse mit SCAPROC

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Programm beginnt mit der Konfiguration einer Autocallable-Makro-Bibliothek und aktiviert den detaillierten Debug-Modus für SCAPROC. Anschließend startet es die SCAPROC-Aufzeichnung. Zwei anfängliche DATA-Schritte erstellen Kopien der Daten 'sashelp.class'. Diese Kopien werden dann mittels PROC SUMMARY nach 'sex' aggregiert, wodurch temporäre Datasets (x2, y2) entstehen. Diese aggregierten Datasets werden anschließend mittels PROC SORT nach 'sex' sortiert (x3, y3). Ein DATA-Schritt zum Zusammenführen kombiniert dann 'x3' und 'y3' zu 'z'. Eine PROC PRINT wird verwendet, um den Inhalt des Datasets 'z' anzuzeigen. Schließlich führt eine PROC SQL einen Left Join zwischen den ursprünglichen Datasets 'x' und 'y' durch, um 'sql_table' zu erstellen. Die SCAPROC-Aufzeichnung wird beendet und das Makro %scaproc_analyse wird aufgerufen, um die GraphViz-Beschreibung des Verarbeitungsflusses zu generieren.
Datenanalyse

Type : SASHELP


Die Quelldaten stammen ausschließlich aus dem internen Dataset 'SASHELP.CLASS', einer Standardbeispieltabelle, die mit SAS geliefert wird. Es werden keine externen oder inline generierten Daten ('datalines') verwendet.

1 Codeblock
Systemkonfiguration und Makros
Erklärung :
Dieser Block konfiguriert das SAS-System für die Verwendung spezifischer Makros. Er definiert 'mymacros' als eine Autocallable-Bibliothek, die auf das aktuelle Verzeichnis verweist, fügt diese Bibliothek den SASAUTOS-Optionen hinzu und initialisiert die Makrovariable '_eandebug', um die detaillierte SCAPROC-Ablaufverfolgung zu aktivieren. Schließlich startet das Makro '%eanbegin' die Aufzeichnung des Programmausführungsflusses unter dem Namen 'Sample 1'.
Kopiert!
1filename mymacros '.';
2options append=sasautos=(mymacros);
3 
4%* SET macro variable to turn on SCAPROC and SET verbose logging ;
5%let _eandebug=scaproc,verbose;
6
7%* Start recording SCAPROC DATA ;
8%eanbegin(Sample 1)
2 Codeblock
DATA STEP Data
Erklärung :
Ein DATA-Schritt, der ein neues Dataset namens 'x' erstellt. Er liest alle Beobachtungen und Variablen aus dem Dataset 'sashelp.class' und kopiert sie nach 'x'.
Kopiert!
1DATA x ;
2 SET sashelp.class ;
3RUN ;
3 Codeblock
DATA STEP Data
Erklärung :
Ein zweiter DATA-Schritt, der ein neues Dataset namens 'y' erstellt. Ähnlich dem vorherigen, kopiert er ebenfalls alle Beobachtungen und Variablen von 'sashelp.class' nach 'y'.
Kopiert!
1DATA y ;
2 SET sashelp.class ;
3RUN ;
4 Codeblock
PROC SUMMARY Data
Erklärung :
Diese Prozedur berechnet zusammenfassende Statistiken. Für das Dataset 'x' gruppiert sie die Beobachtungen nach der Variable 'sex' und berechnet den Mittelwert der Variable 'height'. Die Ergebnisse werden im neuen Dataset 'x2' gespeichert.
Kopiert!
1PROC SUMMARY DATA=x ;
2 class sex ;
3 var height ;
4 OUTPUT out=x2 mean= ;
5RUN ;
5 Codeblock
PROC SUMMARY Data
Erklärung :
Ähnlich dem vorherigen Block berechnet diese Prozedur die zusammenfassenden Statistiken für das Dataset 'y'. Sie gruppiert nach 'sex', berechnet den Mittelwert von 'height' und speichert die Ergebnisse in 'y2'.
Kopiert!
1PROC SUMMARY DATA=y ;
2 class sex ;
3 var height ;
4 OUTPUT out=y2 mean= ;
5RUN ;
6 Codeblock
PROC SORT Data
Erklärung :
Die Prozedur PROC SORT wird verwendet, um das Dataset 'x2' nach der Variable 'sex' zu sortieren. Das sortierte Dataset wird dann unter dem Namen 'x3' gespeichert. Das Sortieren ist ein wesentlicher vorbereitender Schritt für Zusammenführungs- oder Join-Operationen.
Kopiert!
1PROC SORT DATA=x2 out=x3 ;
2 BY sex ;
3RUN ;
7 Codeblock
PROC SORT Data
Erklärung :
Analog zum vorherigen Block sortiert diese PROC SORT das Dataset 'y2' nach der Variable 'sex' und speichert das Ergebnis in 'y3'. Dies bereitet 'y3' auf eine Zusammenführung mit 'x3' vor.
Kopiert!
1PROC SORT DATA=y2 out=y3 ;
2 BY sex ;
3RUN ;
8 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA-Schritt führt eine Zusammenführung (Merge) der sortierten Datasets 'x3' und 'y3' durch. Die Zusammenführung erfolgt anhand der Variable 'sex', wodurch Beobachtungen mit demselben Wert für 'sex' aus beiden Datasets im neuen Dataset 'z' kombiniert werden.
Kopiert!
1DATA z ;
2 MERGE x3 y3 ;
3 BY sex ;
4RUN ;
9 Codeblock
PROC PRINT
Erklärung :
Die Prozedur PROC PRINT wird verwendet, um den Inhalt des zuletzt in der SAS-Sitzung erstellten Datasets anzuzeigen. In diesem Fall handelt es sich um das Dataset 'z', das aus der Zusammenführungsoperation resultiert.
Kopiert!
1PROC PRINT ;
2RUN ;
10 Codeblock
PROC SQL Data
Erklärung :
Dieser Block verwendet PROC SQL, um einen Join durchzuführen. Er erstellt eine neue Tabelle namens 'sql_table', indem er die Datasets 'x' und 'y' über einen Left Outer Join (LEFT JOIN) auf der Variable 'sex' kombiniert. Dies schließt alle Beobachtungen von 'x' und die entsprechenden Beobachtungen von 'y' ein.
Kopiert!
1PROC SQL ;
2 create TABLE sql_table as
3 select *
4 from x
5 left join
6 y
7 on x.sex=y.sex ;
8QUIT ;
11 Codeblock
Analyse SCAPROC
Erklärung :
Dieser Block schließt die Aufzeichnung der SCAPROC-Daten mit dem Makro '%eanend' ab. Anschließend wird das Makro '%scaproc_analyse' aufgerufen, um die aufgezeichneten SCAPROC-Daten zu verarbeiten und eine Ausgabe im GraphViz DOT-Format zu generieren, die zur Erstellung einer grafischen Darstellung (Flussdiagramm) des SAS-Programmausführungsflusses verwendet werden kann.
Kopiert!
1%* Finish recording SCAPROC DATA and write it out ;
2%eanend
3
4
5%* Generate the graphViz dot language to be used to make diagram ;
6%scaproc_analyse
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.