Benutzung des
Recode-Befehls im Sinne einer
IF-THEN-ELSE-Anweisung
Die
Recode-Funktion von PS-Explore kann unter Einbeziehung der logischen Funktionen
EQ (=), NE (<>), GT (>), GE (>=), LT (<) und LE (<=) als IF-THEN-ELSE-Anweisung
mit mehreren ELSE-Verzweigungen benutzt
werden.
Nachstehend
eine Tabelle mit 2 Variablen (Var1 und Var2), die in einer logischen Bedingung
benutzt werden. Eine weitere Variable (Var3) wird für eine zugeordnete
Rechenoperation benutzt. Der Inhalt wird einer vierten Variablen (Var4)
zugewiesen.

Die Aufgabe
lautet:
wenn Var1 = 1 und Var2 = 0, dann setze Var4
= Var3
wenn Var1 = 1 und Var2 = 1, dann setze Var4 =
Var3*2
wenn Var1 = 0 und Var2 = 0, dann setze Var4
= Var3*3
wenn Var1 = 0 und Var2 = 1, dann setze Var4
= Var3*4
In
PS-Explore-Notation lautet der Befehl wie in nachstehendem Bild gezeigt:

Der
Recode-Befehl erhält als ersten Funktionsparameter den Wert 1 (=logisch wahr).
Die zweiten bis fünften Parameter enthalten sowohl die logischen Bedingungen,
z.B. „eq(var1,0)&eq(var2,1)“, als auch die bei
Zutreffen der Bedingung durchzuführenden Berechnungen (z.B. var3*4).
Logische
Bedingung und Rechenoperation werden durch Gleichheitszeichen getrennt, die
Bedingung steht links des Gleichheitszeichens, die Berechnung rechts.
Der Befehl
var4 =
recode(1, eq(var1,1)&eq(var2,0)=var3,
eq(var1,1)&eq(var2,1)=var3*2,
eq(var1,0)&eq(var2,0)=var3*3,
eq(var1,0)&eq(var2,1)=var3*4)
lautet umgangssprachlich
formuliert dann etwa:
„Überprüfe,
welche der vier insgesamt möglichen 01-Kombinationen bei Var1 und Var2
vorliegen. Nehme sodann die Rechenoperation, die der zutreffenden Bedingung
durch Gleichheitszeichen zugeordnet ist und Berechne das Ergebnis. Sodann lege
das Ergebnis der Berechnung auf Var4 ab“.
Beispiel:
Ist Var1=0 UND Var2=0 ( „eq(var1,0)&eq(var2,0)“ ),
dann rechne Var3*3 ( 500*3). Das Ergebnis (1500) wird in der Var4 zugehörigen
Spalte abgelegt.
In
nachstehendem Beispiel werden alle vier 01-Kombinationen einmal durchgerechnet:

Anmerkungen:
1. Statt 1 (wahr) als erstem Parameter
kann auch 0 (=falsch) benutzt werden. Dann gilt alles oben Gesagte
genau umgekehrt, d.h. die
zugeordnete Rechenoperation wird ausgeführt, wenn eine Bedingung falsch ist.
2. Die logischen Bedingungen des
Recode-Befehls sollten so formuliert sein, dass, wenn der erste Parameter
1 gesetzt ist, genau eine Bedingung
zutrifft, also wahr wird. Treffen mehrere Bedingungen zu, so wird
diejenige Rechenoperation ausgeführt, die von links her
gesehen, als erste wahr ist. Trifft gar keine
Bedingung zu, so wird dem Ergebnisfeld (hier Var4) ein
Fehlwert „-“ zugewiesen.
3. Zusätzlich zur Benutzung der Recode-Funktion
im Rechne-Befehl der Makrosprache von PS-Explore kann
RECODE auch als Formel eines Datenfeldes in
Datenerfassungsmasken benutzt werden.
4. Das obige Beispiel wurde aus Gründen
der intuitiven Nachvollziehbarkeit möglichst einfach gewählt. Die
Komplexität der Ausdrücke links und rechts des
Gleichheitszeichens eines Recode-Argumentes ist praktisch
nicht beschränkt. Es können alle Variablen/Felder eines
Arbeitsblattes oder einer Datenmaske benutzt werden.
5. Die logischen Funktionen (EQ, NE,
GT, GE, LT, LE) können als 2. Argument auch Formeln enthalten:
z.B. „eq(var1,sqr(Var3)+2)&eq(var2,0)=sqrt(var3)+2“