SAS-Makro-Programmierung: - Urz
SAS-Makro-Programmierung: - Urz SAS-Makro-Programmierung: - Urz
Ü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
- Seite 1 und 2: Universitätsrechenzentrum Heidelbe
- Seite 3 und 4: 6.1.5 %UPCASE- UND %QUPCASE-FUNKTIO
- Seite 5 und 6: LegendeSAS-Schlüsselworte, -Anweis
- Seite 7 und 8: Makrovariablen unterscheiden sich g
- Seite 9 und 10: 2.2 Benutzerdefinierte Makrovariabl
- Seite 11 und 12: %let vname=hans;%let name=&vname Sc
- Seite 13 und 14: • definieren lokale Makrovariable
- Seite 15 und 16: 4. Lokale und globale Makrovariable
- Seite 17 und 18: Dies bedeutet, daß der Makro-Proze
- Seite 19 und 20: Makro-Programmanweisungen sind die
- Seite 21 und 22: %put &name;%mend vornach; Der Makro
- Seite 23 und 24: infile in2;input produkt kosten dat
- Seite 25 und 26: un;%kurz: proc print data=_last_(ob
- Seite 27 und 28: Fenstername benennt das Fenster und
- Seite 29 und 30: PROTECT=YES|NOFalls Sie PROTECT=YES
- Seite 31 und 32: Bild 2: Makro DISP zeigt beide Grup
- Seite 33 und 34: 6.1 Funktionen zur Bearbeitung von
- Seite 36 und 37: Beispiel 1: %macro Verglei;%put Geb
- Seite 38 und 39: Beispiele:%let wert=%eval(50+60);%p
- Seite 41 und 42: Aufruf:%end;%put Ergebnis: &wert1 &
- Seite 43 und 44: 7. Berührungspunkte zwischen Makro
- Seite 45 und 46: Die Ausprägung der Variable muß e
- Seite 47 und 48: 7.1.3 Resolve-FunktionDiese Funktio
- Seite 49: Syntax:call execute(argument);Das a
- Seite 53 und 54: SystemoptionErklärungmautosource/B
- Seite 55 und 56: 9.3 Allgemeine SystemoptionenSystem
- Seite 57 und 58: Lösungvorschläge zu den Übungsau
- Seite 59 und 60: Proc print data=&sds;run;%end;%* Fa
- Seite 61 und 62: %put Fügen sie die Fehlermeldung
- Seite 63 und 64: Welcher SAS-Code wird mit folgenden
- Seite 65 und 66: 11. Schreiben Sie ein Makro PLOTTER
- Seite 67 und 68: Makro-Programmanweisungen .... 7; 1
- Seite 69 und 70: 8ÔI’d){(oœXŒ1l)os,s->Š m?&˜$
- Seite 71 und 72: "%r({› &m?s/)-(oš4&(u¢W"]3I-8£
- Seite 73: wu£#¤ }~¥~z`}~W…¦#¥~y{w¦#"~
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