Wert aus Tabelle als Parameter übergeben an Makro übergeben
Allgemeine Fragen zu SAS |
Eingetragen von pascala. | 25 Februar, 2008 - 14:39
Hallo,
besteht die Möglichkeit, einen Wert aus der Tabelle per Parameter an ein Makro zu übergeben.
/* Beispiel erstellen */
data work.test;
do Umsatz = 1 to 500 by 15;
output;
end;
format GrKl $20.;
run;
/* Beispiel Makro */
%macro Umsatzgroessenklasse(value);
%if &value <= 100 %then
"Kleiner hundert";
%mend Umsatzgroessenklasse;
/* Beispiel Ausführung */
data work.test;
set work.test;
GrKl = %Umsatzgroessenklasse(Umsatz);
run;
data work.test;
do Umsatz = 1 to 500 by 15;
output;
end;
format GrKl $20.;
run;
/* Beispiel Makro */
%macro Umsatzgroessenklasse(value);
%if &value <= 100 %then
"Kleiner hundert";
%mend Umsatzgroessenklasse;
/* Beispiel Ausführung */
data work.test;
set work.test;
GrKl = %Umsatzgroessenklasse(Umsatz);
run;
So das das Makro wie eine Funktion einzusetzen wäre. Das könnte man dann ja für beliebige Dinge erstellen.
Bei dem Beispiel hier kommt allerdings folgende Fehlermeldung:
FEHLER 22-322: Syntaxfehler, erwartet wird eines der folgenden: ein Name, eine Zeichenkette in Hochkommata,
eine numerische Konstante, eine Datetime-Konstante, ein fehlender Wert, INPUT, PUT.
eine numerische Konstante, eine Datetime-Konstante, ein fehlender Wert, INPUT, PUT.
Wenn so eine Möglichkeit nicht existiert, dann schreibe ich es klassisch (so wie ich es kenne - arbeite noch nicht so lange mit SAS):
data work.test;
set work.test;
if Umsatz < 100 then do;
GrKl = "Kleiner hundert";
end;
run;
set work.test;
if Umsatz < 100 then do;
GrKl = "Kleiner hundert";
end;
run;
Vielen Dank für Lösungsvorschläge oder komplett neue Ideen :).
Freundliche Grüße
Pascal
