Hallo Zusammen
Ich versuche seit einiger eine neue Variable zu erstellen, scheitere aber bei meinen Versuchen und habe keine Ideen mehr...
Ich möchte aus mehreren Textvariablen, die medizinische Diagnose-Codes (ICD-10) enthalten, eine neue Variable erstellten. Diese neue Variable soll angeben, ob mind. einer von mehreren Diagnose-Codes (z.B. F05.1, F05.8, F05.9, F10.4, etc) enthalten ist (ja=1, nein=0).
Mein bisher hoffnungsvollster Versuch war folgender:
COMPUTE Delir_cod = ANY ("F05", "F05.1", "F05.8", "F05.9", "F10.4", "F11.4", "F12.4", "F13.4", "F14.4", "F15.4", "F16.4", "F17.4", "F18.4", "F19.4",
Hdiag_ICD10, Wdiag_1, Wdiag_2, Wdiag_3, Wdiag_4, Wdiag_5, Wdiag_6, Wdiag_7, Wdiag_8, Wdiag_9, Wdiag_10, Wdiag_11,
Wdiag_12, Wdiag_13, Wdiag_14, Wdiag_15, Wdiag_16, Wdiag_17, Wdiag_18, Wdiag_19, Wdiag_20, Wdiag_21, Wdiag_22,
Wdiag_23, Wdiag_24, Wdiag_25, Wdiag_26, Wdiag_27, Wdiag_28, Wdiag_29, Wdiag_30, Wdiag_31, Wdiag_32, Wdiag_33,
Wdiag_34, Wdiag_35, Wdiag_36, Wdiag_37, Wdiag_38, Wdiag_39, Wdiag_40, Wdiag_41, Wdiag_42, Wdiag_43, Wdiag_44,
Wdiag_45, Wdiag_46, Wdiag_47, Wdiag_48, Wdiag_49, Wdiag_50).
EXECUTE.
Leider bekam ich wahlweise eine Fehlermeldung oder der Wert in der neuen Variable "Delir_cod" war immer 0 (was nicht dem entspricht, was berechnet werden soll).
Habe ich die Syntax falsch (via Variable Berechnen) oder kennt jemand einen ganz anderen Lösungsweg?
Vielen Dank für eure Hilfe!
Liebe Grüsse
Stefan
Neue Variable aus mehreren Textvariablen erstellen
-
- Beiträge: 3
- Registriert: 11.10.2018, 17:29
-
- Beiträge: 2734
- Registriert: 01.02.2018, 10:45
Re: Neue Variable aus mehreren Textvariablen erstellen
hallo
wenn da nur einser und nuller drin stehen
summiere doch einfach auf über sum()
warum sind manche variablen in anführungszeichen "" gesetzt?
sind das string variablen, wozu ? wenn da zahlen drin stehen...
wenn dann vielleicht so ANY(1,V1,V2,....)
dann kriegst du als output nur 1 oder 0, aber nicht die summe der diagnosen...
gruß
dutchie
wenn da nur einser und nuller drin stehen
summiere doch einfach auf über sum()
warum sind manche variablen in anführungszeichen "" gesetzt?
sind das string variablen, wozu ? wenn da zahlen drin stehen...
wenn dann vielleicht so ANY(1,V1,V2,....)
dann kriegst du als output nur 1 oder 0, aber nicht die summe der diagnosen...
gruß
dutchie
-
- Beiträge: 3
- Registriert: 11.10.2018, 17:29
Re: Neue Variable aus mehreren Textvariablen erstellen
Vielen Dank für die Antwort. Ich glaube, ich habe die Situation nicht präzise genug geschildert:
- Hdiag_ICD10, Wdiag_1, Wdiag_2, Wdiag_3,... sind meine String-Variablen, welche unzählige Diagnosecodes enthalten.
- "F05", "F05.1", "F05.8",... sind meine Diagnosecodes, die ich aus den String-Variablen herauslesen möchte.
- In Anführungszeichen gesetzt habe ich sie, weil ich sonst eine Fehlermeldung bekommen habe und so nicht. War also ein Versuch aus Unwissheit
- Der Output soll am Ende 1 oder 0 sein. Wenn ich die Summe erhalte, könnte ich damit aber auch weiterarbeiten und diese in 1 und 0 umrechnen.
Vielen Dank und ein schönes Wochenende
Stefan
- Hdiag_ICD10, Wdiag_1, Wdiag_2, Wdiag_3,... sind meine String-Variablen, welche unzählige Diagnosecodes enthalten.
- "F05", "F05.1", "F05.8",... sind meine Diagnosecodes, die ich aus den String-Variablen herauslesen möchte.
- In Anführungszeichen gesetzt habe ich sie, weil ich sonst eine Fehlermeldung bekommen habe und so nicht. War also ein Versuch aus Unwissheit
- Der Output soll am Ende 1 oder 0 sein. Wenn ich die Summe erhalte, könnte ich damit aber auch weiterarbeiten und diese in 1 und 0 umrechnen.
Vielen Dank und ein schönes Wochenende
Stefan
-
- Beiträge: 2734
- Registriert: 01.02.2018, 10:45
Re: Neue Variable aus mehreren Textvariablen erstellen
hallo
ach so, na dann wird das problem nicht kleiner..
also das ANY dings kann nur einen "wert" lesen...
versuche mal alle variablen umzukodieren, so das du numerische Variablen hast..
du kannst eventuell aus dem string der da steht, alle zeichen einzeln auslesen
und in einen neue variable packen ...
wäre meine erste ideen...
wird aber getüftel..oder eliminiere nur das "F"
gruß
dutchie
ach so, na dann wird das problem nicht kleiner..
also das ANY dings kann nur einen "wert" lesen...
versuche mal alle variablen umzukodieren, so das du numerische Variablen hast..
du kannst eventuell aus dem string der da steht, alle zeichen einzeln auslesen
und in einen neue variable packen ...
wäre meine erste ideen...
wird aber getüftel..oder eliminiere nur das "F"
gruß
dutchie
-
- Beiträge: 3
- Registriert: 11.10.2018, 17:29
Re: Neue Variable aus mehreren Textvariablen erstellen
Hallo Dutchie
Vielen Dank für deine Antwort. Ich war überzeugt, dass es einen eleganten Weg in SPSS geben muss, in dem ich mit ein oder zwei Schritten an mein Ziel komme.
Ich habe nun den umständlichen Weg genommen und bin auch an mein Ziel gekommen:
- Ich habe alle meine Diagnose-Variablen (39) mit folgender Syntax umcodiert:
RECODE Hdiag_ICD10 ('F05.0'=1) ('F05.1'=1) ('F05.8'=1) ('F05.9'=1) ('F10.4'=1) ('F11.4'=1)
('F12.4'=1) ('F13.4'=1) ('F14.4'=1) ('F15.4'=1) ('F16.4'=1) ('F17.4'=1) ('F18.4'=1) ('F19.4'=1)
(ELSE=0) INTO F_Hdiag.
VARIABLE LABELS F_Hdiag 'Hauptdiagnosen zu Delir'.
EXECUTE.
- Danach wie vorgeschlagen aus allen die Summe gebildet:
COMPUTE Delir_Diag_cod = SUM(F_Hdiag,F_Wdiag_1,F_Wdiag_2,F_Wdiag_3,F_Wdiag_4,F_Wdiag_5,F_Wdiag_6,F_Wdiag_7,F_Wdiag_8,F_Wdiag_9,F_Wdiag_10,F_Wdiag_11,F_Wdiag_12,F_Wdiag_13,F_Wdiag_14,F_Wdiag_15,F_Wdiag_16,F_Wdiag_17,F_Wdiag_18,F_Wdiag_19,F_Wdiag_20,F_Wdiag_21,F_Wdiag_22,F_Wdiag_23,F_Wdiag_24,F_Wdiag_25,F_Wdiag_26,F_Wdiag_27,F_Wdiag_28,F_Wdiag_29,F_Wdiag_30,F_Wdiag_31,F_Wdiag_32,F_Wdiag_33,F_Wdiag_34,F_Wdiag_35,F_Wdiag_36,F_Wdiag_37,F_Wdiag_38).
EXECUTE.
- Und diese wieder in 1 und 0 umcodiert:
RECODE Delir_Diag_cod (0=0) (1 thru 3=1) INTO Delir_ICD10.
VARIABLE LABELS Delir_ICD10 'Delirdiagnose nach ICD-10'.
EXECUTE.
Herzlichen Dank für deine Unterstützung und das Mitdenken!
Vielen Dank für deine Antwort. Ich war überzeugt, dass es einen eleganten Weg in SPSS geben muss, in dem ich mit ein oder zwei Schritten an mein Ziel komme.
Ich habe nun den umständlichen Weg genommen und bin auch an mein Ziel gekommen:
- Ich habe alle meine Diagnose-Variablen (39) mit folgender Syntax umcodiert:
RECODE Hdiag_ICD10 ('F05.0'=1) ('F05.1'=1) ('F05.8'=1) ('F05.9'=1) ('F10.4'=1) ('F11.4'=1)
('F12.4'=1) ('F13.4'=1) ('F14.4'=1) ('F15.4'=1) ('F16.4'=1) ('F17.4'=1) ('F18.4'=1) ('F19.4'=1)
(ELSE=0) INTO F_Hdiag.
VARIABLE LABELS F_Hdiag 'Hauptdiagnosen zu Delir'.
EXECUTE.
- Danach wie vorgeschlagen aus allen die Summe gebildet:
COMPUTE Delir_Diag_cod = SUM(F_Hdiag,F_Wdiag_1,F_Wdiag_2,F_Wdiag_3,F_Wdiag_4,F_Wdiag_5,F_Wdiag_6,F_Wdiag_7,F_Wdiag_8,F_Wdiag_9,F_Wdiag_10,F_Wdiag_11,F_Wdiag_12,F_Wdiag_13,F_Wdiag_14,F_Wdiag_15,F_Wdiag_16,F_Wdiag_17,F_Wdiag_18,F_Wdiag_19,F_Wdiag_20,F_Wdiag_21,F_Wdiag_22,F_Wdiag_23,F_Wdiag_24,F_Wdiag_25,F_Wdiag_26,F_Wdiag_27,F_Wdiag_28,F_Wdiag_29,F_Wdiag_30,F_Wdiag_31,F_Wdiag_32,F_Wdiag_33,F_Wdiag_34,F_Wdiag_35,F_Wdiag_36,F_Wdiag_37,F_Wdiag_38).
EXECUTE.
- Und diese wieder in 1 und 0 umcodiert:
RECODE Delir_Diag_cod (0=0) (1 thru 3=1) INTO Delir_ICD10.
VARIABLE LABELS Delir_ICD10 'Delirdiagnose nach ICD-10'.
EXECUTE.
Herzlichen Dank für deine Unterstützung und das Mitdenken!