SAS-Makro-Programmierung: - Urz

SAS-Makro-Programmierung: - Urz SAS-Makro-Programmierung: - Urz

web.urz.uni.heidelberg.de
von web.urz.uni.heidelberg.de Mehr von diesem Publisher
12.07.2015 Aufrufe

8.3 Command styled Makros"Command styled" Makros lassen sich wie SAS-Kommandos, nur in der Kommandozeile aufrufen.Makroparameter sind ohne Klammer, getrennt durch Leerzeichen, in der Reihenfolge ihrerDefinition anzugeben.Um ein Makro als "Command styled" zu definieren, ist die Option cmd in der Makrodefinitionerforderlich. Außerdem muß die Systemoption CMDMAC gesetzt sein. Das Makro sollte außerdemnur Display Manager Kommandos enthalten. "Command styled" Makros sind erst ab SAS-Version6.07 möglich.Definition: %macro makroname(makroparameter) / cmd;Makrotext;%mend makroname;Aufruf:makroname makroparameter;Beispiele: options cmdmac;%macro colors(fenster)/cmd;&fenster;color banner green;color source yellow;color warning cyan;color error red;%mend colors;Aufruf in der Kommandozeile: colors logDas Makro colors führt Farbänderungen im jeweiligen Fenster durch. Durch die Systemoption cmdmac werden "Command styled" Makros ermöglicht. Durch die Option cmd wird das Makro colors als "Command styled" definiert.9. Makro-Bibliotheken (Autocall-Facility)SAS-Makros werden (temporär oder permanent) in Bibliotheken abgelegt und können automatischzur Verfügung gestellt werden. Die Makros werden in SAS-Katalogen unter dem Makro-Namenabgespeichert.Die Makros können als• Quelltext oder• kompiliertes Programmabgespeichert werden. Quelltext-Makros müssen von SAS zunächst kompiliert werden, d.h. manlädt das Makro in den Programmeditor und submittiert es.9.1 Automatischer Aufruf von Makros (Autocall Facility)Es gibt verschiedene Systemoptionen, mit deren Hilfe Sie direkt auf ihre Makrobibliothekenzugreifen können, ohne sie als Quelltext in den Programm Editor zu laden. Den automatischenMakroaufruf nennt man 'Autocall'. Wo genau SAS nach Makros sucht, steht in der Dateiconfig.sas.52

SystemoptionErklärungmautosource/Bestimmt, ob die automatische Makrosuche (AutocallnomautosourceFacility) eingeschaltet werden soll.Sasautos=Makrobibliothek Definiert die Makro-Bibliothek. Es gibt drei Möglichkeitenauf ihre Makrobibliothek zu verweisen:• über Fileref,• über eine Filename-Anweisung• oder mit direktem Namen in Anführungszeichen.mrecall/nomrecall Veranlasst den Makro-Prozessor nach Makrobibliotheken zusuchen, die nicht bei der ersten Suche gefunden wurden.Die Default-Einstellungen sind unterstrichen.Der Makro-Prozessor sucht Makros sequentiell in den Makro-Bibliotheken. Er sucht immer zuerstim Katalog WORK.SASMACR, in die kompilierte Makros automatisch während einer Sitzungabgespeichert werden (Siehe Kap. 9.2).Beispiel: Ihre Makrobibliothek, in die Sie ihre Makros abgelegt haben, befindet sich im Verzeichnis'C:\sas\makros'. Außerdem befinden sich einige Makros im Verzeichnis 'N:\sasurz\makros'.filename urzmac 'n:\sasurz\makros';filename mymac 'c:\sas\makros';options sasautos=(mymac urzmac);oder:options sasautos=('c:\sas\makros' 'N:\sasurz\makros');Sie können ihre Makros jetzt direkt aufrufen, indem sie den Makroaufruf im Programm-Editorsubmittieren.%ttest(calcium,,pille,co.blutbild);%nobs(sasuser.crime);Der Makro-Prozessor sucht jetzt zunächst im Katalog WORK.SASMACR und erst danach in denVerzeichnissen c:\sas\makros und N:\sasurz\makros.SAS stellt selbst einige Makros bereit. Sie befinden sich im Verzeichnis 'SASROOT\core\sasmacro'.Um auf diese Makros zuzugreifen muß das obige Beispiel folgendermaßen ersetzt werden: (DasSASROOT-Verzeichnis ist im URZ N:\saswn610.)optionssasautos=('N:\sasurz\makros' mymac'N:\saswn610\core\sasmacro');Die vollständige Liste aller von SAS zur Verfügung gestellten Makros finden Sie im 'SAS Guide forMacro Processing', Version 6, 2. Edition, Seiten 186-187.Folgende Fehlermeldung taucht auf, wenn Sie z.B. vergessen haben, die Filename-Anweisung fürmymac zu setzen:WARNING: No logical assign for filename MYMAC.WARNING: Source level autocall is not found or cannot be opened. Autocall hasbeen suspended and OPTION NOMAUTOSOURCE has been set. To use theautocall facility again, set OPTION MAUTOSOURCE.WARNING: Apparent invocation of macro DATATYP not resolved.53

SystemoptionErklärungmautosource/Bestimmt, ob die automatische <strong>Makro</strong>suche (AutocallnomautosourceFacility) eingeschaltet werden soll.Sasautos=<strong>Makro</strong>bibliothek Definiert die <strong>Makro</strong>-Bibliothek. Es gibt drei Möglichkeitenauf ihre <strong>Makro</strong>bibliothek zu verweisen:• über Fileref,• über eine Filename-Anweisung• oder mit direktem Namen in Anführungszeichen.mrecall/nomrecall Veranlasst den <strong>Makro</strong>-Prozessor nach <strong>Makro</strong>bibliotheken zusuchen, die nicht bei der ersten Suche gefunden wurden.Die Default-Einstellungen sind unterstrichen.Der <strong>Makro</strong>-Prozessor sucht <strong>Makro</strong>s sequentiell in den <strong>Makro</strong>-Bibliotheken. Er sucht immer zuerstim Katalog WORK.<strong>SAS</strong>MACR, in die kompilierte <strong>Makro</strong>s automatisch während einer Sitzungabgespeichert werden (Siehe Kap. 9.2).Beispiel: Ihre <strong>Makro</strong>bibliothek, in die Sie ihre <strong>Makro</strong>s abgelegt haben, befindet sich im Verzeichnis'C:\sas\makros'. Außerdem befinden sich einige <strong>Makro</strong>s im Verzeichnis 'N:\sasurz\makros'.filename urzmac 'n:\sasurz\makros';filename mymac 'c:\sas\makros';options sasautos=(mymac urzmac);oder:options sasautos=('c:\sas\makros' 'N:\sasurz\makros');Sie können ihre <strong>Makro</strong>s jetzt direkt aufrufen, indem sie den <strong>Makro</strong>aufruf im Programm-Editorsubmittieren.%ttest(calcium,,pille,co.blutbild);%nobs(sasuser.crime);Der <strong>Makro</strong>-Prozessor sucht jetzt zunächst im Katalog WORK.<strong>SAS</strong>MACR und erst danach in denVerzeichnissen c:\sas\makros und N:\sasurz\makros.<strong>SAS</strong> stellt selbst einige <strong>Makro</strong>s bereit. Sie befinden sich im Verzeichnis '<strong>SAS</strong>ROOT\core\sasmacro'.Um auf diese <strong>Makro</strong>s zuzugreifen muß das obige Beispiel folgendermaßen ersetzt werden: (Das<strong>SAS</strong>ROOT-Verzeichnis ist im URZ N:\saswn610.)optionssasautos=('N:\sasurz\makros' mymac'N:\saswn610\core\sasmacro');Die vollständige Liste aller von <strong>SAS</strong> zur Verfügung gestellten <strong>Makro</strong>s finden Sie im '<strong>SAS</strong> Guide forMacro Processing', Version 6, 2. Edition, Seiten 186-187.Folgende Fehlermeldung taucht auf, wenn Sie z.B. vergessen haben, die Filename-Anweisung fürmymac zu setzen:WARNING: No logical assign for filename MYMAC.WARNING: Source level autocall is not found or cannot be opened. Autocall hasbeen suspended and OPTION NOMAUTOSOURCE has been set. To use theautocall facility again, set OPTION MAUTOSOURCE.WARNING: Apparent invocation of macro DATATYP not resolved.53

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!