String in Nummerische Variable umwandeln

Fragen und Diskussionen rund um die Arbeit mit SPSS. Für allgemeine Statistik-Themen, die nicht mit SPSS zusammenhängen, bitte das Statistik-Forum nutzen.
Antworten
null.plan
Beiträge: 11
Registriert: 13.03.2008, 11:55

String in Nummerische Variable umwandeln

Beitrag von null.plan »

Hallo!

Ich kämpfe gerade mit einer Sekundärdatenanalyse.
Dabei habe ich folgendes Problem:
Es gibt eine Variable, die Aussagen darüber macht, in wievielen Monaten eines Jahres eine bestimmte Sache zutraf. Anstelle einfach eine Zahl zwischen 0 und 12 in diese Variable zu schreiben, hat ein ganz schlauer Kopf einen String daraus gemacht und zwar mit einem Zeichen pro Monat. D.h. wenn eine Sache von Januar bis Juni zutraf, so stehen in der Variable 6 Einsen hintereinander. Wenn es nur jeden zweiten Monat zutraf, stehen immer abwechselnd Einsen und Leerzeichen.
Gibt es eine Möglichkeit die Einsen des Strings zu summieren und in eine Variable zu schreiben?
Danke für Eure Hilfe und einen schönen Abend noch!

Viele Grüße
null.plan
KarinJ
Beiträge: 939
Registriert: 13.05.2008, 10:52

Beitrag von KarinJ »

hallo,

geht wahrscheinlich auch irgendwie sparsamer, aber das ist meine lösung:

zerlege die variable in 12 substrings, die dann anschliessen ins numerische format verwandelt werden. dann werden die 12 neuen variablen addiert.

transformieren -> berechnen -> erster substring wäre sub1 = substr(altevariable, 1, 1), wobei die erste 1 die position ist, die zweite 1 die länge des substrings in der neuen variablen -> siehe beispiel:

STRING sub1 (A8).
STRING sub2 (A8).
STRING sub3 (A8).
STRING sub4 (A8).
STRING sub5 (A8).
STRING sub6 (A8).
usw.

COMPUTE sub1 = SUBSTR(altevariable,1,1) .
COMPUTE sub2 = SUBSTR(altevariable,2,1) .
COMPUTE sub3 = SUBSTR(altevariable,3,1) .
COMPUTE sub4 = SUBSTR(altevariable,4,1) .
COMPUTE sub5 = SUBSTR(altevariable,5,1) .
COMPUTE sub6 = SUBSTR(altevariable,6,1) .
usw.

EXECUTE .

anschliessend eine der neuen string-variablen in der variablenansicht im typ verändern (string -> numerisch), dann den typ kopieren, die typenfelder der restlichen 11 variablen markieren und einfügen -> alle sind numerisch und können im folgenden addiert werden.
null.plan
Beiträge: 11
Registriert: 13.03.2008, 11:55

Beitrag von null.plan »

Hallo KarinJ!

Vielen Dank für den tollen Tip!
Die Umwandlung hat super funktioniert, aber die Addition der subs funktioniert nicht. SPSS bringt mir keine Fehlermeldung, aber in der neuen Variable stehen auch keine Werte... )o:
Egal ob ich:

Code: Alles auswählen

compute var = sum.x(subx1, subx2,...) . exe . 
oder

Code: Alles auswählen

compute var = subx1 + subx2 + ... . exe .
eingebe, es stehen keine Werte in var.
Woran könnte das liegen?
Hab die subs auch in Nummerische umgepolt.
Danke für die Hilfe!

Viele Grüße
null.plan
null.plan
Beiträge: 11
Registriert: 13.03.2008, 11:55

Beitrag von null.plan »

Ich habs:

Code: Alles auswählen

DO REPEAT a = subx1 TO subxn .
 recode a (sysmis = 0) .
end repeat .
exe .
und dann mit

Code: Alles auswählen

compute var = subx1 + subx2 + ... . exe .
Anzeige:Statistik und SPSS: Die besten Bücher
Als Buch oder E-Book - Jetzt bestellen
spss datenanalyse
SPSS - Moderne Datenanalyse - Jetzt bestellen!
statistik datenanalyse
Statistik - Der Weg zur Datenanalyse - Jetzt bestellen!
Antworten