Veröffentlicht am :
Makro SASHELP

Dynamische Datensegmentierung über Makrovariablen

Dieser Code ist auch verfügbar auf: English Español Deutsch Français
Wartet auf Validierung
Dieses Programm definiert ein Makro 'split_data'. Es verwendet PROC SQL, um alle eindeutigen Werte der Spalte ORIGIN der Tabelle SASHELP.CARS zu identifizieren und speichert sie in einer Reihe nummerierter Makrovariablen (vertikale Liste). Anschließend wird eine %DO-Schleife gestartet, um über diese Werte zu iterieren. Hinweis: Der bereitgestellte Code ist eine zu vervollständigende Übung, da die Anweisungen innerhalb der Schleife hartcodierte Werte ('Asia') enthalten, die durch dynamische Makroreferenzen (&&var&i) ersetzt werden sollen.
Datenanalyse

Type : SASHELP


Verwendet die Standard-Beispieltabelle SASHELP.CARS.

1 Codeblock
PROC SQL
Erklärung :
Wählt die eindeutigen Werte der Spalte ORIGIN aus und speichert sie in inkrementellen Makrovariablen (:ORIGIN1, :ORIGIN2 usw.). Die automatische Variable &sqlobs wird abgerufen, um die Gesamtzahl der Ursprünge zu ermitteln.
Kopiert!
1 * Create the vertical macro variable list.;
2 PROC SQL noprint;
3 select distinct origin into :ORIGIN1-
4 from sashelp.cars;
5 %let NUM_ORIGINS = &sqlobs;
6 QUIT;
2 Codeblock
DATA STEP Data
Erklärung :
Iterative Makroschleife, die darauf abzielt, für jeden Ursprung eine Tabelle zu erstellen. Im aktuellen Zustand (unvollendete Übung) überschreibt sie wiederholt die Tabelle 'cars_asia' mit den nach 'Asia' gefilterten Daten. Ziel ist es, 'Asia' durch &&ORIGIN&i zu ersetzen.
Kopiert!
1 /* Replace both hard-coded values of ASIA below using the a reference
2 to a vertical macro variable list. */
3 
4 %DO i = 1 %to &NUM_ORIGINS;
5 DATA cars_asia; * CHANGE THIS LINE ;
6 SET sashelp.cars;
7 where origin = "Asia"; * CHANGE THIS LINE ;
8 RUN;
9 %END;
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 : Dozent: Josh Horstman