Veröffentlicht am :
Makro SASHELP

Dynamische Erstellung einer horizontalen Makrovariablenliste

Dieser Code ist auch verfügbar auf: English Español Français
Dieses Skript veranschaulicht, wie eine horizontale Liste von Werten erstellt wird, die während der Ausführung eines DATA-Schritts in einer Makrovariablen gespeichert wird. Es verwendet die SASHELP.CLASS-Tabelle, um alle Schülernamen, getrennt durch eine Tilde, zu verketten und speichert auch die Gesamtzahl der Schüler.
Datenanalyse

Type : SASHELP


Die Daten stammen aus der Standardtabelle SASHELP.CLASS.

1 Codeblock
DATA STEP
Erklärung :
Dieser DATA _NULL_ Schritt durchläuft die Tabelle SASHELP.CLASS. Die RETAIN-Anweisung und die CATX-Funktion ermöglichen das Sammeln der Namen in der Variablen 'student_list'. Bei der letzten Beobachtung (eof) weist CALL SYMPUTX die vollständige Liste und die Anzahl der Beobachtungen (_n_) Makrovariablen zu.
Kopiert!
1DATA _null_;
2 SET sashelp.class END=eof;
3 LENGTH student_list $200;
4 retain student_list;
5 student_list = catx('~',student_list,name);
6 IF eof THEN DO;
7 call symputx('STUDENT_LIST',student_list);
8 call symputx('NUM_STUDENTS',_n_);
9 END;
10RUN;
2 Codeblock
SAS MACRO LANGUAGE
Erklärung :
Zeigt den Inhalt der erstellten Makrovariablen (&NUM_STUDENTS und &STUDENT_LIST) im SAS-Log zur Überprüfung an. Die Option 'nosource' wird verwendet, um die Log-Ausgabe zu bereinigen.
Kopiert!
1options nosource;
2%put ======================;
3%put Number of Students: &NUM_STUDENTS;
4%put Student List: &STUDENT_LIST;
5%put ======================;
6options 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 : Instructor : Josh Horstman