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!
* Create the vertical macro variable list.;
proc sql noprint;
select distinct origin into :ORIGIN1-
from sashelp.cars;
%let NUM_ORIGINS = &sqlobs;
quit;
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!
/* Replace both hard-coded values of ASIA below using the a reference
to a vertical macro variable list. */
%do i = 1 %to &NUM_ORIGINS;
data cars_asia; * CHANGE THIS LINE ;
set sashelp.cars;
where origin = "Asia"; * CHANGE THIS LINE ;
run;
%end;
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.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.