IF-THEN

Aus SAS-Wiki
Wechseln zu: Navigation, Suche

Die IF-THEN-Anweisung ist eine (ausführbare) Anweisung, um im Datenschritt (Data Step) eine Anweisung nur dann auszuführen, wenn eine bestimmte Bedingung erfüllt ist.

Syntax

IF Bedingung THEN Anweisung;
<ELSE Anweisung;>     

Bedingung steht für eine beliebige Bedingung und Anweisung für eine beliebige ausführbare Anweisung, welche nur dann ausgeführt wird, wenn eine Beobachtung die Bedingung erfüllt. Optional kann eine ELSE Anweisung ergänzt werden, die ausgeführt wird wenn die Bedingung nicht zutrifft. Zwischen der IF Anweisung und der ELSE Anweisung darf keine weitere Anweisung stehen, auch keine Kommentar Anweisung der Form * Kommentar; (Kommentare der Form /* Kommentar */ sind zulässig).

Nach THEN und ELSE wird jeweils nur genau eine Anweisung ausgeführt. Falls mehrere Anweisungen bedingt verwendet werden sollen, so müssen diese in einem DO-END Block zusammengefasst werden.

IF Bedingung THEN DO;
 Anweisung1;
 Anweisung2;
END;
<ELSE DO;     
 Anweisung3;
 Anweisung4;
END;>

Durch Verkettung der IF-THEN Anweisung lassen sich ELSE-IF-Schachtelungen erstellen, indem als ELSE Anweisung eine weitere IF-THEN Anweisung verwendet wird. Dabei ist es empfehlenswert nach allen erwarteten Bedingungen einen zusätzlichen ELSE Zweig für unerwartete Fälle (z.B. durch Missing value hervorgerufen) vorzusehen. Als Alternative zu ELSE-IF-Schachtelungen kann die SELECT Anweisung verwendet werden.

Beispiele

DATA kinder;
 SET sashelp.class;
 IF  age>=14 THEN DELETE;
RUN;
DATA jungs maedchen andere;
 SET sashelp.class;
 IF      sex="M" THEN OUTPUT jungs;
 ELSE IF sex="F" THEN OUTPUT maedchen;
 ELSE                 OUTPUT andere;
RUN;
DATA klasse;
 SET sashelp.class;
 IF     .<age<14 THEN Gruppe=1;
 ELSE IF age>=14 THEN Gruppe=2;
 ELSE                 Gruppe=3;
RUN;

Siehe auch

Weblinks