Seite 1 von 1

Problem mit RECODE einer Variable bei DO-IF Befehl

BeitragVerfasst: Do 11. Aug 2016, 13:38
von Bolly
Hallo Forianer,

ich habe gerade ein vermutlich nicht allzu komplexes Problem:

Ich habe die Variablen v_1 und v_2, die jeweils einen Wert von 1-5 annehmen können.

Ich möchte nun für den Fall dass v_1 den Wert 1 hat, dass eine v_2_neu geschrieben wird, die die Werte aus v_2 übernimmt. Hat v_1 allerdings den Wert 2, 3,4 oder 5, dann soll in v_2_neu der Wert 0 für den entsprechenden Fall eingetragen werden. Das ganze müsste ja irgendwie mit DO-IF ELSE-IF zu lösen sein.

Wenn ich schreibe:

DO IF v_1 =1.
RECODE v_2 (ELSE=COPY) INTO v_2_neu.
ELSE IF v_1 = 2 OR 3 OR 4 OR 5.
RECODE v_2 (MISSING=SYSMIS)(ELSE=0) INTO v_2_neu.
END IF.

Wird zwar in v_2_neu der richtige Wert für die Bedingungen "DO IF v_1 =1" und "ELSE IF v_1 = 2" eingeschrieben,allerdings werden für die v_1 Werte 3,4 und 5 keine Werte in v_2_neu vergeben. Der Fehler liegt dann wohl beim OR, allerdings stehe ich gerade etwas auf dem Schlauch, weshalb ich für Ratschläge dankbar wäre.

Bolly

Edit.:

Mit:

DO IF v_1 =1.
RECODE v_2 (ELSE=COPY) INTO v_2_neu.
ELSE IF v_1 > 1.
RECODE v_2 (MISSING=SYSMIS)(ELSE=0) INTO v_2_neu.
END IF.

scheint es zu funktionieren. Dennoch würde mich interessieren, wie ich hinter dem ELSE-IF nur bestimmte Werte auswählen kann?