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?