IF Befehl nicht erkannt

Alles rund um SPSS Syntax und Programmierung.

IF Befehl nicht erkannt

Beitragvon JohnnyKS » Di 9. Okt 2012, 15:08

Guten Tag,

in meinem Datensatz gibt es die Variablen "Jahre" und "Monate" aus denen die Variable "Alter" gebildet werden soll. Dies habe ich wie folgt lösen können:

COMPUTE Alter = Jahre + (Monate*(1/12)).

Das Problem ist folgendes: Wenn die Variable "Monate" ein Missing (-9) enthält, wird die Variable Alter nicht berechnet. Z.B. Alter=21 Monate=-9 --> Alter=-9

Es wäre natürlich wünschenswert, wenn dann die Variable "Monate" gar nicht beachtet wird und die Variable "Alter" dann den Wert der Variable "Jahre" zugewiesen bekommt. Dies habe ich mit einem IF Befehl versucht zu lösen:

DO IF (Monate = -9).
COMPUTE Alter = Jahre.
ELSE.
COMPUTE Alter = Jahre + (Monate*(1/12)).
END IF.
EXECUTE.

Leider ignoriert SPSS die Bedingung und gibt dasselbe Ergebnis aus: Wenn "Monate" ein Missing bleibt die Variable "Alter" leer.

Für jede Anregung und Hilfe zur Lösung des Problems bin ich sehr dankbar!

Gruß!
JohnnyKS
 
Beiträge: 2
Registriert: Di 9. Okt 2012, 14:55
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: IF Befehl nicht erkannt

Beitragvon Moeter » Mi 10. Okt 2012, 12:36

Ich glaube, dass SPSS in der Syntax auch die Fehlenden Werte nicht berücksichtigt.
Das kann behoben werden, indem du vor deinem Befehl die Missing Values aufhebst, und hinterher die -9 wieder hinzufügst.

Code: Alles auswählen
MISSING VALUES Monate ().
DO IF (Monate=-9).
COMPUTE Alter=Jahre.
ELSE.
COMPUTE Alter=Jahre+Monate*(1/12).
END IF.
MISSING VALUES Monate (-9).

So werden die eigentlich fehlenden Werte nur in dieser Passage für die Altersberechnung berücksichtigt und für alle weiteren Operationen außer Acht gelassen.
Moeter
 
Beiträge: 4
Registriert: Mi 10. Okt 2012, 08:45
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: IF Befehl nicht erkannt

Beitragvon JohnnyKS » Do 11. Okt 2012, 12:26

Moeter hat geschrieben:Ich glaube, dass SPSS in der Syntax auch die Fehlenden Werte nicht berücksichtigt.
Das kann behoben werden, indem du vor deinem Befehl die Missing Values aufhebst, und hinterher die -9 wieder hinzufügst.

Code: Alles auswählen
MISSING VALUES Monate ().
DO IF (Monate=-9).
COMPUTE Alter=Jahre.
ELSE.
COMPUTE Alter=Jahre+Monate*(1/12).
END IF.
MISSING VALUES Monate (-9).

So werden die eigentlich fehlenden Werte nur in dieser Passage für die Altersberechnung berücksichtigt und für alle weiteren Operationen außer Acht gelassen.


Super! Daran hats gelegen. Vielen Dank! Klappt ganz wunderbar jetzt. Gruß!
JohnnyKS
 
Beiträge: 2
Registriert: Di 9. Okt 2012, 14:55
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu SPSS Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste