Brauche Hilfe: Erstellung einer Syntax
-
- Beiträge: 18
- Registriert: 17.02.2008, 15:45
Brauche Hilfe: Erstellung einer Syntax
Hallo,
ich brauche Eure Hilfe:
Ich muss für einen kleinen SPSS-Datensatz eine Syntax verfassen. Eins sag ich gleich: Bin auf dem Gebiet ziemlicher Neuling.
Folgendes ist Ziel:
- Ich habe einen kleinen Datensatz von 100 Familien. Es gibt 9 Variablen, die Werte zwischen 0 und 3 annehmen können.
- Ich will, dass SPSS eine neue Variable erstellt, die für die einzelnen Familien nur dann als 1 gesetzt wird, wenn mindestens 6 der 9 Variablen >= 2 sind.
Bisher bin ich so vorgegangen: Ich habe für jede der 9 Variablen über den Befehl "Variable berechnen" eine neue Variable definiert, die als 1 gesetzt wird, wenn sie >= 2 ist. Das klappt und stimmt soweit auch.
Jetzt dachte ich, ich addiere einfach die 9 neuen Werte und wenn sie >= 6, dann kann die neue Variable gleich 1 gesetzt werden.
Aber das klappt irgendwie nicht.
Versteht jemand, was ich will und wie ich das lösen kann?
Gruß,
Elwood
ich brauche Eure Hilfe:
Ich muss für einen kleinen SPSS-Datensatz eine Syntax verfassen. Eins sag ich gleich: Bin auf dem Gebiet ziemlicher Neuling.
Folgendes ist Ziel:
- Ich habe einen kleinen Datensatz von 100 Familien. Es gibt 9 Variablen, die Werte zwischen 0 und 3 annehmen können.
- Ich will, dass SPSS eine neue Variable erstellt, die für die einzelnen Familien nur dann als 1 gesetzt wird, wenn mindestens 6 der 9 Variablen >= 2 sind.
Bisher bin ich so vorgegangen: Ich habe für jede der 9 Variablen über den Befehl "Variable berechnen" eine neue Variable definiert, die als 1 gesetzt wird, wenn sie >= 2 ist. Das klappt und stimmt soweit auch.
Jetzt dachte ich, ich addiere einfach die 9 neuen Werte und wenn sie >= 6, dann kann die neue Variable gleich 1 gesetzt werden.
Aber das klappt irgendwie nicht.
Versteht jemand, was ich will und wie ich das lösen kann?
Gruß,
Elwood
-
- Beiträge: 18
- Registriert: 17.02.2008, 15:45
Herzlichen Dank für die Antwort.
Die Syntax lautet wie folgt:
IF (AKe3adhs1 = 1) ADHS_Diag1 = 1 .
EXECUTE .
IF (AKe3adhs1.1 >= 2) ADHS_Diag1.1 = 1 .
EXECUTE .
IF (AKe3adhs1.2 >= 2) ADHS_Diag1.2 = 1 .
EXECUTE .
IF (AKe3adhs1.3 >= 2) ADHS_Diag1.3 = 1 .
EXECUTE .
IF (AKe3adhs1.4 >= 2) ADHS_Diag1.4 = 1 .
EXECUTE .
IF (AKe3adhs1.5 >= 2) ADHS_Diag1.5 = 1 .
EXECUTE .
IF (AKe3adhs1.6 >= 2) ADHS_Diag1.6 = 1 .
EXECUTE .
IF (AKe3adhs1.7 >= 2) ADHS_Diag1.7 = 1 .
EXECUTE .
IF (AKe3adhs1.8 >= 2) ADHS_Diag1.8 = 1 .
EXECUTE .
IF (AKe3adhs1.9 >= 2) ADHS_Diag1.9 = 1 .
EXECUTE .
IF ((ADHS_Diag1.1 + ADHS_Diag1.2 + ADHS_Diag1.3 + ADHS_Diag1.4 +
ADHS_Diag1.5 + ADHS_Diag1.6 + ADHS_Diag1.7 + ADHS_Diag1.8 + ADHS_Diag1.9)
>= 6) ADHS_Diagnose = 1 .
EXECUTE .
FREQUENCIES
VARIABLES=ADHS_Diagnose
/ORDER= ANALYSIS .
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wenn ich jetzt die Häufigkeiten für die Variable "ADHS_Diagnose" berechne wird folgendes im Ausgabefenster ausgeworfen:
ADHS_Diagnose
N Gültig 0
Fehlend 267
ADHS_Diagnose
Häufigkeit Prozent
Fehlend System 267 100,0
Das kann ja nicht stimmen. Es sind ja Personen dabei, auf die das zutrifft.
Jemand Hilfe parat?
Gruß und Dank!!
Die Syntax lautet wie folgt:
IF (AKe3adhs1 = 1) ADHS_Diag1 = 1 .
EXECUTE .
IF (AKe3adhs1.1 >= 2) ADHS_Diag1.1 = 1 .
EXECUTE .
IF (AKe3adhs1.2 >= 2) ADHS_Diag1.2 = 1 .
EXECUTE .
IF (AKe3adhs1.3 >= 2) ADHS_Diag1.3 = 1 .
EXECUTE .
IF (AKe3adhs1.4 >= 2) ADHS_Diag1.4 = 1 .
EXECUTE .
IF (AKe3adhs1.5 >= 2) ADHS_Diag1.5 = 1 .
EXECUTE .
IF (AKe3adhs1.6 >= 2) ADHS_Diag1.6 = 1 .
EXECUTE .
IF (AKe3adhs1.7 >= 2) ADHS_Diag1.7 = 1 .
EXECUTE .
IF (AKe3adhs1.8 >= 2) ADHS_Diag1.8 = 1 .
EXECUTE .
IF (AKe3adhs1.9 >= 2) ADHS_Diag1.9 = 1 .
EXECUTE .
IF ((ADHS_Diag1.1 + ADHS_Diag1.2 + ADHS_Diag1.3 + ADHS_Diag1.4 +
ADHS_Diag1.5 + ADHS_Diag1.6 + ADHS_Diag1.7 + ADHS_Diag1.8 + ADHS_Diag1.9)
>= 6) ADHS_Diagnose = 1 .
EXECUTE .
FREQUENCIES
VARIABLES=ADHS_Diagnose
/ORDER= ANALYSIS .
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wenn ich jetzt die Häufigkeiten für die Variable "ADHS_Diagnose" berechne wird folgendes im Ausgabefenster ausgeworfen:
ADHS_Diagnose
N Gültig 0
Fehlend 267
ADHS_Diagnose
Häufigkeit Prozent
Fehlend System 267 100,0
Das kann ja nicht stimmen. Es sind ja Personen dabei, auf die das zutrifft.
Jemand Hilfe parat?
Gruß und Dank!!
-
- Beiträge: 818
- Registriert: 26.09.2006, 14:52
gibt es missings?
ich bilde summen immer mit:
COMPUTE adhs_tot = SUM(ADHS_Diag1.1,ADHS_Diag1.2,ADHS_Diag1.3, [etc. bis ADHS_Diag1.9 immer mit Komma getrennt) .
EXE.
IF adhs_tot=1 ADHS_Diagnose=1.
EXE.
vielleicht geht es so.
Wenndie diag1.x-variablen untereinander stehen könnte es auch kürzer gehen:
COMPUTE adhs_tot = SUM(ADHS_Diag1.1 TO ADHS_Diag1.9).
gruss
patrick
ich bilde summen immer mit:
COMPUTE adhs_tot = SUM(ADHS_Diag1.1,ADHS_Diag1.2,ADHS_Diag1.3, [etc. bis ADHS_Diag1.9 immer mit Komma getrennt) .
EXE.
IF adhs_tot=1 ADHS_Diagnose=1.
EXE.
vielleicht geht es so.
Wenndie diag1.x-variablen untereinander stehen könnte es auch kürzer gehen:
COMPUTE adhs_tot = SUM(ADHS_Diag1.1 TO ADHS_Diag1.9).
gruss
patrick
-
- Beiträge: 18
- Registriert: 17.02.2008, 15:45
Und direkt ein neues Problem!
Wie kann ich folgende Bedingung in eine Syntax umwandeln:
Vier oder mehr der unter F91 angegebenen Symptome müssen vorliegen, aber nicht mehr als zwei der Symptome von 9-23
Hier mein Syntaxversuch:
COMPUTE opp_tot1 = SUM(OPP_A1.1,OPP_A1.2,OPP_A1.3,OPP_A1.4,OPP_A1.7,OPP_A1.8,SOZ_A1.1,SOZ_A1.2,SOZ_A1.3,SOZ_A1.4,SOZ_A1.5,SOZ_A1.6,SOZ_A1.7,SOZ_A1.8,SOZ_A1.9,SOZ_A1.10,SOZ_A1.11,SOZ_A1.12,SOZ_A1.13,SOZ_A1.14,SOZ_A1.15).
EXECUTE .
IF opp_tot1 >= 4 OPP_B1 = 1 .
EXECUTE .
COMPUTE opp_tot2 = SUM(SOZ_A1.1,SOZ_A1.2,SOZ_A1.3,SOZ_A1.4,SOZ_A1.5,SOZ_A1.6,SOZ_A1.7,SOZ_A1.8,SOZ_A1.9,SOZ_A1.10,SOZ_A1.11,SOZ_A1.12,SOZ_A1.13,SOZ_A1.14,SOZ_A1.15).
EXECUTE .
IF opp_tot2 <= 2 OPP_B2 = 1 .
EXECUTE .
IF (OPP_B1 + OPP_B2 = 2) OPP_B = 1 .
EXECUTE .
Problem ist dabei nur, dass SPSS alle diejenigen Teilnehmer übergeht, bei der z.B. opp_tot2 gleich null ist (und somit ja auch kleiner als 2, womit die Bedingung ja erfüllt ist)!
Jemand ne Lösung?
Gruß und Danke
Wie kann ich folgende Bedingung in eine Syntax umwandeln:
Vier oder mehr der unter F91 angegebenen Symptome müssen vorliegen, aber nicht mehr als zwei der Symptome von 9-23
Hier mein Syntaxversuch:
COMPUTE opp_tot1 = SUM(OPP_A1.1,OPP_A1.2,OPP_A1.3,OPP_A1.4,OPP_A1.7,OPP_A1.8,SOZ_A1.1,SOZ_A1.2,SOZ_A1.3,SOZ_A1.4,SOZ_A1.5,SOZ_A1.6,SOZ_A1.7,SOZ_A1.8,SOZ_A1.9,SOZ_A1.10,SOZ_A1.11,SOZ_A1.12,SOZ_A1.13,SOZ_A1.14,SOZ_A1.15).
EXECUTE .
IF opp_tot1 >= 4 OPP_B1 = 1 .
EXECUTE .
COMPUTE opp_tot2 = SUM(SOZ_A1.1,SOZ_A1.2,SOZ_A1.3,SOZ_A1.4,SOZ_A1.5,SOZ_A1.6,SOZ_A1.7,SOZ_A1.8,SOZ_A1.9,SOZ_A1.10,SOZ_A1.11,SOZ_A1.12,SOZ_A1.13,SOZ_A1.14,SOZ_A1.15).
EXECUTE .
IF opp_tot2 <= 2 OPP_B2 = 1 .
EXECUTE .
IF (OPP_B1 + OPP_B2 = 2) OPP_B = 1 .
EXECUTE .
Problem ist dabei nur, dass SPSS alle diejenigen Teilnehmer übergeht, bei der z.B. opp_tot2 gleich null ist (und somit ja auch kleiner als 2, womit die Bedingung ja erfüllt ist)!
Jemand ne Lösung?
Gruß und Danke
-
- Beiträge: 18
- Registriert: 17.02.2008, 15:45
Hallo!
Nochmal die Frage, ob irgendwer bereits oben genanntes Problem lösen kann?
Der genutzte Fragebogen erfragt 23 Symptome.
Vier oder mehr der Symptome müssen vorliegen, aber nicht mehr als zwei der Symptome von 9-23.
Wie kann ich das in einer Syntax umsetzen?
Bisher hab ich das hier:
Anders gefragt: Wie krieg ich es hin, dass SPSS in Felder, in denen die Summe 0 ist, eine 0 setzt?
Nochmal die Frage, ob irgendwer bereits oben genanntes Problem lösen kann?
Der genutzte Fragebogen erfragt 23 Symptome.
Vier oder mehr der Symptome müssen vorliegen, aber nicht mehr als zwei der Symptome von 9-23.
Wie kann ich das in einer Syntax umsetzen?
Bisher hab ich das hier:
- *Zunächst der Test, ob mindestens 4 Symptome vorliegen:
COMPUTE symp_ges1 = SUM(S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16,S17,S18,S19,S20,S21,S22,S23).
EXECUTE .
IF (symp_ges1>= 4) BED_A = 1 .
EXECUTE .
*Jetzt die Summe der Symptome 9-23:
COMPUTE symp_ges2 = SUM(S9,S10,S11,S12,S13,S14,S15,S16,S17,S18,S19,S20,S21,S22,S23)).
EXECUTE .
IF (symp_ges2 <= 2) BED_B = 1 .
EXECUTE .
IF (BED_A = 1 AND BED_B = 1) SYMP = 1 .
EXECUTE .
Anders gefragt: Wie krieg ich es hin, dass SPSS in Felder, in denen die Summe 0 ist, eine 0 setzt?