Veröffentlicht am :
Makro SASHELP

Verwendung von Makrovariablenlisten für dynamische Programme

Dieser Code ist auch verfügbar auf: English Español Français
Dieses SAS©-Skript veranschaulicht die dynamische Erstellung einer vertikalen Liste von Makrovariablen. Aus dem SASHELP.CLASS-Datensatz werden Makrovariablen mit den Namen STUDENT1 bis STUDENT19 generiert, die jeweils den Namen eines Schülers enthalten. Eine zusätzliche Makrovariable, NUM_STUDENTS, wird erstellt, um die Gesamtzahl der Schüler in der Liste zu speichern. Die Erstellung erfolgt über einen DATA-Schritt und die Verwendung der Funktion CALL SYMPUTX. Das Skript enthält anschließend einen Überprüfungsabschnitt, der den Inhalt dieser neuen Makrovariablen im SAS©-Protokoll anzeigt.
Datenanalyse

Type : SASHELP


Die Eingabedaten stammen aus dem internen SASHELP.CLASS-Datensatz, der standardmäßig in SAS verfügbar ist.

1 Codeblock
DATA STEP
Erklärung :
Dieser DATA _NULL_ Schritt durchläuft den SASHELP.CLASS-Datensatz. Für jede Beobachtung wird CALL SYMPUTX verwendet, um eine Makrovariable mit dem Namen 'STUDENT' gefolgt von der Beobachtungsnummer (_n_) zu erstellen und ihr den Wert der Variablen 'name' zuzuweisen. Wenn das Ende der Datei erreicht ist (end=eof), wird eine Makrovariable 'NUM_STUDENTS' erstellt, die die Gesamtzahl der verarbeiteten Beobachtungen enthält.
Kopiert!
1DATA _null_;
2 SET sashelp.class END=eof;
3 call symputx(cats('STUDENT',_n_),name);
4 IF eof THEN call symputx('NUM_STUDENTS',_n_);
5RUN;
2 Codeblock
MACRO STATEMENT
Erklärung :
Dieser Block verwendet die %PUT-Anweisung, um die Werte der zuvor erstellten Makrovariablen (NUM_STUDENTS und die STUDENTx-Variablen) direkt im SAS-Protokoll anzuzeigen. Die Optionen NOSOURCE und SOURCE werden verwendet, um den SAS-Code selbst im Protokoll auszublenden oder anzuzeigen, wodurch die Ergebnisse der %PUT hervorgehoben werden können.
Kopiert!
1* Verify the contents of the new macro variables by printing to the SAS log.;
2options nosource;
3%put ======================;
4%put Number of Students: &NUM_STUDENTS;
5%put;
6%put Student 1: &STUDENT1;
7%put Student 2: &STUDENT2;
8%put Student 3: &STUDENT3;
9%put ...;
10%put Student 17: &STUDENT17;
11%put Student 18: &STUDENT18;
12%put Student 19: &STUDENT19;
13%put ======================;
14options SOURCE;
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 : HANDS-ON WORKSHOP, Title: Using SAS Macro Variable Lists to Create Dynamic Data-Driven Programs, Instructor: Josh Horstman