Das Skript verwendet standardmäßig den Datensatz `sashelp.class`. Dieser Datensatz ist intern in SAS und immer verfügbar.
1 Codeblock
MACRO
Erklärung : Dieser Block definiert und ruft ein Makro `%defaults` auf. Dieses Makro überprüft das Vorhandensein der Makrovariable `dset`. Falls `dset` nicht existiert, deklariert es diese global und initialisiert sie mit dem Pfad `sashelp.class`.
Kopiert!
%macro defaults ;
%* these defaults may be passed in, or else they default ;
%if %symexist(dset)=0 %then %do;
%global dset;
%let dset=sashelp.class;
%end;
%mend defaults;
%defaults
1
%macro defaults ;
2
%* these defaults may be passed in, or ELSE they default ;
3
%IF %symexist(dset)=0 %THEN %DO;
4
%global dset;
5
%let dset=sashelp.class;
6
%END;
7
%mend defaults;
8
%defaults
2 Codeblock
DATA STEP
Erklärung : Dieser `DATA _NULL_` Schritt für Schritt öffnet den durch `&dset` (standardmäßig `sashelp.class`) angegebenen Datensatz, ruft die Anzahl der Beobachtungen (`nobs`) über die Funktion `attrn` ab und speichert diese mit `call symput` in einer Makrovariable namens `nobs`.
Kopiert!
data _null_ ;
dsid=open("&dset");
nobs=attrn(dsid,'nobs');
call symput('nobs',strip(put(nobs,8.)));
run;
1
DATA _null_ ;
2
dsid=open("&dset");
3
nobs=attrn(dsid,'nobs');
4
call symput('nobs',strip(put(nobs,8.)));
5
RUN;
3 Codeblock
DATA STEP Data
Erklärung : Dieser Block generiert eine XML-Datei. Zuerst wird der Pfad des Arbeitsverzeichnisses (`work`) abgerufen und in der Makrovariable `pathname` gespeichert. Anschließend wird eine `libname test` vom Typ `xml` einer Datei `temp.xml` in diesem Verzeichnis zugewiesen. Der Inhalt des Datensatzes `&dset` wird nach `test.test` kopiert, wodurch die XML-Datei erstellt wird. Die Libname wird anschließend freigegeben. Schließlich liest ein `DATA _NULL_` die Datei `temp.xml` und zeigt deren Inhalt direkt über `_webout` an.
Kopiert!
%let pathname=%sysfunc(pathname(work)) ;
libname test xml "&pathname/temp.xml" ;
data test.test ;
set &dset ;
run ;
libname test ;
data _null_ ;
infile "&pathname/temp.xml" ;
file _webout ;
input ;
put _infile_ ;
run ;
1
%let pathname=%sysfunc(pathname(work)) ;
2
LIBNAME test xml "&pathname/temp.xml" ;
3
DATA test.test ;
4
SET &dset ;
5
RUN ;
6
LIBNAME test ;
7
DATA _null_ ;
8
INFILE"&pathname/temp.xml" ;
9
file _webout ;
10
INPUT ;
11
put _infile_ ;
12
RUN ;
4 Codeblock
MACRO
Erklärung : Diese Zeilen definieren die Begrenzer für einen gespeicherten SAS-Prozess. `%STPBEGIN` und `%STPEND` umrahmen den Code, der im Rahmen des gespeicherten Prozesses ausgeführt wird. Die Zeile `*';*\"*/;run;` ist eine Standardsyntax, um potenziell ausstehende Codeblöcke oder Anweisungen zu beenden, und wird oft verwendet, um eine saubere Ausführung im Kontext gespeicherter Prozesse sicherzustellen.
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.