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

Übungsaufgaben24. Erzeugen Sie ein Makro, das abhängig von ihren Daten Referenzlinien in einen Scatterploteinzeichnet. Die Referenzlinien sollen eingetragen werden für den Mittelwert und Mittelwertplus/minus einmal die Standardabweichung.Verwenden Sie als Beispieldatensatz die Blutbilddaten, tragen Sie Cholesterin gegen Alter aufund zeichnen Sie die entsprechenden Referenzlinien ein.25. Schreiben Sie ein Makro BUILDFMT, das die Informationen in einer SAS-Datei nutzt, einFormat mit PROC FORMAT zu erzeugen.Das Makro sollte folgende Schlüsselworte unterstützen:•= Name des zu bildenden Formats•= SAS-Datei mit der Formatinformation•= Variable, die die Originalwerte enthält•= Variable, die die Formatwerte enthältFür die Beispiel-Formatdatei: BSPFORMWert Formwert0 gar nichts1 wenig2 etwas3 viel4 ganz vielsollte mit dem Aufruf:%buildfmt(fname=tform,sds=bspform,voriwert=wert,varform=formwert)etwa jener SAS-Code erzeugt werden:proc format;value tform 0="gar nichts"1="wenig "2="etwas "3="viel "4="ganz viel ";run;(Tip: Option CNTLIN der Prozedur Format)8. Aufruf von SAS-MakrosEs gibt drei Arten von SAS-Makros• Named styled Makros• Statement styled Makros und• Command styled Makros,die sich in Definition, Aufruf und Funktion unterscheiden. Alle bisherigen Beispiele in diesemSkript waren "Named styled" Makros.Übersicht:Art des Makros Aufruf Ort des AufrufsNamed styled Makro %makroname(makroparameter) Programm EditorStatement styled Makro makroname makroparameter Programm EditorCommand styled Makro makroname makroparameter Kommando-Zeile50

8.1 Named styled Makros"Named styled" Makros werden im Programm Editor aufgerufen. Sie beginnen immer mit einemProzentzeichen. Ihre Parameter erscheinen in Klammern hinter dem Makronamen. "Named styled"Makros können nur im Programm Editor aufgerufen werden.Aufruf:%makroname(makroparameter)Beispiele: %print(albumin, calcium,alter, SDS=co.blutbild);%makedir;%tu_solan(7);8.2 Statement styled Makros"Statement styled" Makros machen es möglich, Makroaufrufe wie gewöhnliche SAS-Anweisungenaussehen zu lassen. Der Aufruf beginnt mit dem Makronamen ohne Prozentzeichen, dieMakroparameter erscheinen nicht in Klammern und sind jeweils durch ein Leerzeichen voneinandergetrennt. Positionsparameter müssen deshalb in der Reihenfolge ihrer Definitionangegeben werden. Der Aufruf muß mit einem Semikolon enden. Es ist nicht möglich ein"Statement styled" Makro in einer anderen SAS-Anweisung aufzurufen; der Aufruf muß allein ineiner Zeile stehen.Um ein Makro als "Statement styled" zu definieren, ist die Option stmt in der Makrodefinitionnotwendig.Um ein "Statement styled" Makro zu verwenden, muß die Systemoption IMPLMAC gesetzt sein, daansonsten der Makroname nicht als solcher erkannt wird.Definition: %macro makroname(makroparameter) / stmt;Makrotext;%mend makroname;Aufruf:makroname makroparameter;Beispiele: option implmac;%macro print (var1,var2,var3,sds=_last_) / stmt;proc print data=&SDS;var &var1 &var2 &var3;run;%mend print;Aufruf:print albumin calcium alter SDS=co.blutbild; Ohne die Systemoption implmac erscheint folgende Fehlermeldung:ERROR 180-322: Statement is not valid or it is used out of properorder. Ohne die Option stmt wäre das Makro ein "Named styled" Makro und müßte mit%print(....);aufgerufen werden.51

8.1 Named styled <strong>Makro</strong>s"Named styled" <strong>Makro</strong>s werden im Programm Editor aufgerufen. Sie beginnen immer mit einemProzentzeichen. Ihre Parameter erscheinen in Klammern hinter dem <strong>Makro</strong>namen. "Named styled"<strong>Makro</strong>s können nur im Programm Editor aufgerufen werden.Aufruf:%makroname(makroparameter)Beispiele: %print(albumin, calcium,alter, SDS=co.blutbild);%makedir;%tu_solan(7);8.2 Statement styled <strong>Makro</strong>s"Statement styled" <strong>Makro</strong>s machen es möglich, <strong>Makro</strong>aufrufe wie gewöhnliche <strong>SAS</strong>-Anweisungenaussehen zu lassen. Der Aufruf beginnt mit dem <strong>Makro</strong>namen ohne Prozentzeichen, die<strong>Makro</strong>parameter erscheinen nicht in Klammern und sind jeweils durch ein Leerzeichen voneinandergetrennt. Positionsparameter müssen deshalb in der Reihenfolge ihrer Definitionangegeben werden. Der Aufruf muß mit einem Semikolon enden. Es ist nicht möglich ein"Statement styled" <strong>Makro</strong> in einer anderen <strong>SAS</strong>-Anweisung aufzurufen; der Aufruf muß allein ineiner Zeile stehen.Um ein <strong>Makro</strong> als "Statement styled" zu definieren, ist die Option stmt in der <strong>Makro</strong>definitionnotwendig.Um ein "Statement styled" <strong>Makro</strong> zu verwenden, muß die Systemoption IMPLMAC gesetzt sein, daansonsten der <strong>Makro</strong>name nicht als solcher erkannt wird.Definition: %macro makroname(makroparameter) / stmt;<strong>Makro</strong>text;%mend makroname;Aufruf:makroname makroparameter;Beispiele: option implmac;%macro print (var1,var2,var3,sds=_last_) / stmt;proc print data=&SDS;var &var1 &var2 &var3;run;%mend print;Aufruf:print albumin calcium alter SDS=co.blutbild; Ohne die Systemoption implmac erscheint folgende Fehlermeldung:ERROR 180-322: Statement is not valid or it is used out of properorder. Ohne die Option stmt wäre das <strong>Makro</strong> ein "Named styled" <strong>Makro</strong> und müßte mit%print(....);aufgerufen werden.51

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!