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

Aufruf:%end;%put Ergebnis: &wert1 &op &wert2 =%eval(&wert1 %unquote(&op) &wert2);%ende:%mend rechne;%rechne(18,25,op=ADD);%rechne(18,25,op=diff);%rechne(18,25,op=mal); Wenn die Variable op den Wert ADD zugewiesen bekommt, wird sie in ein Pluszeichen (+)verwandelt. Durch die %str-Funktion wird das Pluszeichen von seiner Funktion als arithmetischesOperator enthoben. Es wird jetzt vom Makro-Prozessor als "normales" Textzeichen behandelt. Durch die %unquote-Funktion wird dem Pluszeichen (+) seine ursprüngliche Bedeutungzurückgegeben, und es kann als arithmetischer Operator verwendet werden.Ohne Rück-Quotierung durch die %unquote-Funktion taucht folgende Fehlermeldung auf: ERROR:A character operand was found in the %EVAL function or %IF conditionwhere a numeric operand is required.6.3.6 %Str-FunktionDie %str-Funktion quotiert konstanten Text zur Zeit der Kompilierung (Konstruktion). DerZeitpunkt der Quotierung ist der grundlegende Unterschied zur %quote-Funktion, die bei jederMakro-Ausführung neu durchgeführt wird. Wenn es darum geht, einen Makro-Ausdruckaufzulösen, sollte die %quote-Funktion benutzt werden.Die %str-Funktion entfernt nicht die Bedeutung von Ampersands, Prozentzeichen und nichtgeschlossenenHochkommata. Um nicht geschlossene Hochkommata zu quotieren, muß einProzentzeichen vor das Zeichen gesetzt werden:Beispiel:%let place=%str(Clinton%'s America);Die %str-Funktion sollte bei folgenden Gegebenheiten verwendet werden:• Wenn ein Semikolon statt als Makroausdruck als Textzeichen verwendet werden soll.• Um ein Leerzeichen (Blank) bedeutsam zu machen.• Um ein nicht geschlossenes Hochkomma oder eine offene Klammer, die mit einemProzentzeichen versehen sind, zu benutzen.Syntax: %str(argument)Beispiele: %let p=%str(Proc Print; run;);%put &p;%let time=%str(now);6.3.7 %Nrstr-FunktionDie %nrstr-Funktion quotiert, zusätzlich zu den Funktionen der %str-Funktion, auchProzentzeichen und Hochkommata.Beispiel:%let p=%nrstr(%rechne);%put &p;41

Aufruf:%end;%put Ergebnis: &wert1 &op &wert2 =%eval(&wert1 %unquote(&op) &wert2);%ende:%mend rechne;%rechne(18,25,op=ADD);%rechne(18,25,op=diff);%rechne(18,25,op=mal); Wenn die Variable op den Wert ADD zugewiesen bekommt, wird sie in ein Pluszeichen (+)verwandelt. Durch die %str-Funktion wird das Pluszeichen von seiner Funktion als arithmetischesOperator enthoben. Es wird jetzt vom <strong>Makro</strong>-Prozessor als "normales" Textzeichen behandelt. Durch die %unquote-Funktion wird dem Pluszeichen (+) seine ursprüngliche Bedeutungzurückgegeben, und es kann als arithmetischer Operator verwendet werden.Ohne Rück-Quotierung durch die %unquote-Funktion taucht folgende Fehlermeldung auf: ERROR:A character operand was found in the %EVAL function or %IF conditionwhere a numeric operand is required.6.3.6 %Str-FunktionDie %str-Funktion quotiert konstanten Text zur Zeit der Kompilierung (Konstruktion). DerZeitpunkt der Quotierung ist der grundlegende Unterschied zur %quote-Funktion, die bei jeder<strong>Makro</strong>-Ausführung neu durchgeführt wird. Wenn es darum geht, einen <strong>Makro</strong>-Ausdruckaufzulösen, sollte die %quote-Funktion benutzt werden.Die %str-Funktion entfernt nicht die Bedeutung von Ampersands, Prozentzeichen und nichtgeschlossenenHochkommata. Um nicht geschlossene Hochkommata zu quotieren, muß einProzentzeichen vor das Zeichen gesetzt werden:Beispiel:%let place=%str(Clinton%'s America);Die %str-Funktion sollte bei folgenden Gegebenheiten verwendet werden:• Wenn ein Semikolon statt als <strong>Makro</strong>ausdruck als Textzeichen verwendet werden soll.• Um ein Leerzeichen (Blank) bedeutsam zu machen.• Um ein nicht geschlossenes Hochkomma oder eine offene Klammer, die mit einemProzentzeichen versehen sind, zu benutzen.Syntax: %str(argument)Beispiele: %let p=%str(Proc Print; run;);%put &p;%let time=%str(now);6.3.7 %Nrstr-FunktionDie %nrstr-Funktion quotiert, zusätzlich zu den Funktionen der %str-Funktion, auchProzentzeichen und Hochkommata.Beispiel:%let p=%nrstr(%rechne);%put &p;41

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!