Fallselektion

<< 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

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

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).

TabSelectByCode

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.