12.07.2015 Aufrufe

SAS-Makro-Programmierung: - Urz

SAS-Makro-Programmierung: - Urz

SAS-Makro-Programmierung: - Urz

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4. Lokale und globale <strong>Makro</strong>variablenDas <strong>SAS</strong>-System unterscheidet zwischen• globalen und• lokalen <strong>Makro</strong>variablen.Die globalen <strong>Makro</strong>variablen gelten während der gesamten <strong>SAS</strong>-Sitzung und können an beliebigerStelle verwendet werden, sobald sie definiert wurden. Globale Variablen sind z.B. die unter Kap.2.1 beschriebenen automatischen <strong>Makro</strong>variablen wie &sysdate oder &systime.Im Unterschied dazu gelten die lokalen <strong>Makro</strong>variablen nur in der Umgebung, die während eines<strong>Makro</strong>aufrufs angelegt wird. Diese Variablen sind daher nur innerhalb des <strong>Makro</strong>s oder innerhalbdarin verschachtelter <strong>Makro</strong>s verfügbar.Die Werte der <strong>Makro</strong>variablen werden in Symboltabellenabgelegt: die Werte der globalen Variablenin einer einzigen globalen Tabelle, die Werte der lokalen Variablen in jeweils eigenen lokalenSymboltabellen.4.1 Erzeugung von lokalen und globalen <strong>Makro</strong>variablen<strong>Makro</strong>variablen können auf verschiedene Weise erzeugt werden:• vom <strong>SAS</strong>-System (automatische Variablen, Kap.2.1),• mit der Symput-Routine (siehe Kap. 7.1.2),• durch die Parameter beim <strong>Makro</strong>-Aufruf (siehe Kap. 3.3),• mit der %input-Anweisung (siehe Kap. 5.3),• mit der %let-Anweisung (siehe Kap. 2.2),• mit der %global-Anweisung (siehe Kap. 4.1.1),• mit der %local-Anweisung (siehe Kap. 4.1.2).Die Stelle, an der die Variable erzeugt wird, entscheidet, ob die Variable global oder lokal ist:wie wo wasautomatisch beim <strong>SAS</strong>-Aufruf global (immer)%let-Anweisung außerhalb eines <strong>Makro</strong>s global (aktuelle Sitzung)%let-Anweisung innerhalb eines <strong>Makro</strong>s lokal<strong>Makro</strong>-Parameter Parameterliste beim Aufruf lokal%input-Anweisung innerhalb und außerhalb von global (aktuelle Sitzung)<strong>Makro</strong>ssymput-Routine innerhalb und außerhalb von global (aktuelle Sitzung)<strong>Makro</strong>s%global-Anweisung innerhalb und außerhalb von global (aktuelle Sitzung)<strong>Makro</strong>s%local-Anweisung innerhalb eines <strong>Makro</strong>s lokalBeispiel:%let name=WILHELM;%macro chameleo;%let name=HANS;%put &name;%mend chameleo;15

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!