Subsetting IF

Aus SAS-Wiki
Wechseln zu: Navigation, Suche

Die Subsetting-IF-Anweisung ist eine (ausführbare) Anweisung zur Selektion von Beobachtungen im Datenschritt (Data Step). Im Gegensatz zur ähnlichen IF-THEN-Anweisung gibt es bei Subsetting IF keinen „THEN“-Teil.

Syntax

IF Bedingung;     

Bedingung steht für eine beliebige Bedingung zur Auswahl der Beobachtungen. Es werden ausschließlich diejenigen Beobachtungen weiter verarbeitet, welche die Bedingung erfüllen. Bei allen anderen Beobachtungen wird die Verarbeitung nach dieser Anweisung abgebrochen und mit der nächsten Beobachtung fortgesetzt. Dies ist inhaltlich gleichbedeutend mit der der Anweisung: IF NOT (Bedingung) THEN DELETE; Es ist entscheidend an welcher Stelle im Datenschritt ein Subsetting IF eingesetzt wird.

Beispiele

DATA jungs;
 SET sashelp.class;
 IF sex="M";
RUN;
DATA die_ersten_drei;
 SET sashelp.class;
 IF _N_<=3;
RUN;
DATA schwere_jungs;
 SET sashelp.class;
 IF sex="M";
 Gewicht=weight*0.453592370; * Umrechnung lb in kg;
 IF Gewicht>=50;
RUN;

Details

Im Gegensatz zur WHERE-Anweisung kann Subsetting IF auch auf Variablen angewendet werden, die erst im Datenschritt erstellt werden und noch nicht in der Input-Tabelle existieren, wie zum Beispiel die temporären Variablen _N_, FIRST- und LAST-Variablen sowie IN-Variablen. Außerdem können beliebig viele Subsetting IFs nacheinander im Datenschritt verwendet werden. Dabei spielt die Reihenfolge der Subsetting IFs eine wesentliche Rolle. Sie wirken wie verschiedene Filter, die nacheinander geschaltet sind.

Bei Tabellen mit sehr vielen Beobachtungen und Variablen wird eine WHERE-Bedingung effizienter und schneller abgearbeitet als ein Subsetting IF.

Siehe auch

Weblinks