Expertentipp:
 

Wussten Sie schon, wie Sie in einem SAS Programm einen Schritt bedingt ausführen können, ohne extra ein Makroprogramm schreiben zu müssen?

Und so geht’s:

Ab SAS Version SAS 9.4 M5 kann das bedingte Ausführen mit %IF-%THEN auch in ganz normalen SAS Programmen (außerhalb von Makroprogrammen) verwendet werden.

Allerdings gibt es Folgendes zu beachten:

  • Immer %DO und %END verwenden 
  • Keine verschachtelten %IFs

Beispiel:


%if &sysday = Wednesday %then %do;
    proc print data= sashelp.class;
    run;
%end;
%else %do; 
   %put Heute ist nicht Mittwoch;
%end;

Folgendes Beispiel funktioniert nicht, da %DO und %END nicht verwendet wurden:


/* Geht nicht: Immer %DO und %END erforderlich */
%if &sysday = Wednesday %then %put Heute ist Mittwoch;
%else %put Heute ist nicht Mittwoch;

Auch der IN-Operator kann im offenen Code nicht verwendet werden!
So geht es folglich auch nicht:


/* Kein IN-Operator im offenen Code! */
%if &sysday in Monday Tuesday %then %do;
   %put Montag oder Dienstag;
%else %put Weder Montag noch Dienstag;

Diese Funktionen und noch viele mehr lernen Sie im Kurs  SAS® Macro Language 1: Essentials.