Bedingte Abarbeitung von Code
Guten Tag,
ich möchte ein SAS-Programm zweimal im Monat laufen lassen. Einmal wird ein kompletter Datenbestand verarbeitet und einmal nur ein Teil davon. Da das Programm beides Mal dasselbe tut, soll der Teil, der die zusätzlichen Daten aufruft nur dann laufen, wenn komplett verarbeitet werden soll.
Beispiel:
/* SAS-Befehle, Macro-Definition */
......
/* Aufruf der Verarbeitung */
%Berechnungs(Daten1);
%Berechnungs(Daten2);
%Berechnungs(Daten3);
/* Programmende */
Ich habe nun mit einigen Varianten versucht, den zweiten und dritten Aufruf nur dann auszuführen, wenn er benötigt wird. Z.B.:
/* SAS-Befehle, Macro-Definition */
%let Verarbeitung=voll;
......
/* Aufruf der Verarbeitung */
%Berechnungs(Daten1);
if &Verarbeitung.=voll then do;
%Berechnungs(Daten2);
%Berechnungs(Daten3);
%end;
/* Programmende */
Weder diese Syntax, noch der Versuch über %if, noch das einbetten in einen datastep (data _Null_) hat funktioniert. In der Regel gibt es einen Syntaxfehler oder der Befehl ist an der Stelle nicht zulässig.
Wie kann ich eine bedingte Ausführung der Makroaufrufe erreichen?
Gruß, Jürgen Schreurs
