<< Click to Display Table of Contents >> Navigation: Datenmodifikation > Filterung > Fallselektion |
Die Schlüsselwörter für die fixierte Auswahl definierter Fälle lauten SELECT für einen permanenten Einlesefilter und TABSELECT für eine für die Folgetabellen definierte Fallauswahl.
SELECT definiert einen permanenten Einlesefilter: Nur Fälle, die diesem Filter entsprechen, werden weiter verarbeitet. D.h. alle Tabellen werden nur auf der Basis dieser Daten erstellt. SELECT greift auch auf die Daten-Ausgabe durch. Auch eine iterative Gewichtung bezieht sich nur auf die selektierten Fälle.
SELECT stellt einen permanenten Filter dar im Gegensatz zu TABSELECT.
Syntax:
SELECT <Bedingung>;
Alle RECODE-, RANGES-, COMPUTE- oder IF-Anweisungen werden vor SELECT durchgeführt; SELECT-Anweisungen beziehen sich also auf die endgültig rekodierten bzw. neuberechneten Werte.
Beispiel:
SELECT alter GE 4;
SELECT Partei EQ ’CDU’;
SELECT alter GE 4 AND Parteipräferenz EQ 1;
SELECT NOT ( alter EQ 2 and einkommen GE 3000 );
SELECT (alter EQ 2 OR alter EQ 3) AND (einkommen EQ 1 OR einkommen EQ 2);
Als Vergleichoperatoren sind EQ, NE, GT, GE, LE, LT und IN erlaubt. Für logische Verknüpfungen gibt es AND, OR und NOT.
Assoziationen müssen explizit durch Klammerung angegeben werden; ungeklammerte Reihungen von OR und AND werden von links nach rechts abgearbeitet. Die verbreitete abkürzende Schreibweise "a EQ 1 OR 2" anstelle von" a EQ 1 OR a EQ 2" etc. ist nicht erlaubt. Hierfür gibt es den IN-Test (Siehe entsprechend bei IF). Stringkonstanten sind erlaubt.
TABSELECT definiert eine Auswahl von Fällen für die nachfolgenden Tabellen.
Syntax:
TABSELECT <Bedingung>;
Ein TABSELECT bleibt solange gültig, bis ein neues TABSELECT definiert wird. Sollen in folgenden Tabellen wieder alle Fälle ausgewertet werden, kann man einfach
TABSELECT;
schreiben. (Diese Bedingung ist immer wahr.)
Ist außerdem ein permanenter Filter (SELECT) definiert, so werden nur die Fälle ausgewertet, bei denen beide Bedingungen zutreffen (UND-Verknüpfung).
Mit
TABSELECT TEXT <"Selektionsbeschreibung"> <Bedingung>;
kann man einer Tabellenselektion einen Beschreibungstext hinzufügen. Dieser Text wird in den folgenden Tabellen dem TOPTEXT hinzugefügt (nur in der PostScript-Ausgabe).
Variante von TABSELECT, die insbesondere bei der Arbeit mit Makros nützlich ist.
Syntax:
TABSELECTBYCODE [ <options> ] <VARIABLE> ( <CODE> );
<options> ::= [ VARTITLE | NOMISSING | SUPPRESSOVERCODES
| USELABELS ] <options>
Es wird automatisch ein Text aus dem Label der angesprochenen Variablen zum Code generiert.
TABSELECTBYCODE buland ( 1 );
erzeugt z.B. intern das TABSELECT-Statement:
TABSELECT TEXT <label zum code 1> 1 IN buland;
Direkt im Anschluss an TABSELECTBYCODE können noch Optionen gesetzt werden:
USELABELS |
unterdrückt Werte von '<code>', denen kein Labeltext entspricht |
---|---|
NOMISSING |
unterdrückt Missing Values |
SUPPFRESSOVERCODE |
unterdrückt OVERCODES |
VARTITLE |
schreibt den VARTITLE vor den Labeltext |
Beispiel:
TABSELECTBYCODE VARTITLE buland( 1 ) ;
In diesem fall wird in der Selektionsbeschreibung vor dem Labeltext der VARTITLE ausgegeben.