Mehrere dichotome Variablen in eine Neue V. umkodieren
-
- Beiträge: 9
- Registriert: 25.05.2006, 21:15
Mehrere dichotome Variablen in eine Neue V. umkodieren
Hallo,
ich habe ein Problem:
in meinem Datensatz wurde eine Frage (Art der Wohnung) so codiert, dass die möglichen Antworten (Mietwohnung, Untermiete etc.) insgesamt 8 Unterfragen bilden (ein Kreuz = 1, keine Nennung =0, also dichotom).
Nun würde es mir die Arbeit sehr erleichtern, wenn ich aus diesen 8 Teilfragen eine Variable (dann mit den 8 Wertelabels, die vorher die Variablen waren) bilden könnte.
Kann mir jemand hierbei helfen (auch sehr gerne mit Sytax-Bausteinen) ?
Vielen Dank im Voraus!
ich habe ein Problem:
in meinem Datensatz wurde eine Frage (Art der Wohnung) so codiert, dass die möglichen Antworten (Mietwohnung, Untermiete etc.) insgesamt 8 Unterfragen bilden (ein Kreuz = 1, keine Nennung =0, also dichotom).
Nun würde es mir die Arbeit sehr erleichtern, wenn ich aus diesen 8 Teilfragen eine Variable (dann mit den 8 Wertelabels, die vorher die Variablen waren) bilden könnte.
Kann mir jemand hierbei helfen (auch sehr gerne mit Sytax-Bausteinen) ?
Vielen Dank im Voraus!
-
- Beiträge: 35
- Registriert: 27.01.2006, 13:31
Hallo Umas,
das ist egtl. recht einfach. Zunächst bildest du eine neue Variable (z.B. WOHNART):
Dann musst du einfach nur noch definieren, welche Werte diese Variable annehmen soll (entsprechend deiner Einzelitems):
Dann empfiehlt es sich natürlich noch, Variable- und Value-Labels sowie die missings zu vergeben.
variable label WOHNART 'Art der Wohnung'.
value labels WOHNART 1'Einzimmerwohnung' 2'XXX' 3'XXX' [usw] 999'keine Angabe'.
missing values WOHNART (999).
ZU BEACHTEN ist dabei allerdings, dass von den 8 Items jeweils nur EINES angekreuzt sein darf, da sonst die Zurdnung der Werte nicht mehr eindeutig ist.
Grüße,
PearsonsR[/code]
das ist egtl. recht einfach. Zunächst bildest du eine neue Variable (z.B. WOHNART):
Code: Alles auswählen
compute WOHNART = 0.
Code: Alles auswählen
if (VAR1=1) WOHNART = 1.
if (VAR2=1) WOHNART = 2.
if (VAR3=1) WOHNART = 3.
[usw.]
variable label WOHNART 'Art der Wohnung'.
value labels WOHNART 1'Einzimmerwohnung' 2'XXX' 3'XXX' [usw] 999'keine Angabe'.
missing values WOHNART (999).
ZU BEACHTEN ist dabei allerdings, dass von den 8 Items jeweils nur EINES angekreuzt sein darf, da sonst die Zurdnung der Werte nicht mehr eindeutig ist.
Grüße,
PearsonsR[/code]
-
- Beiträge: 9
- Registriert: 25.05.2006, 21:15
.."leider" Mehrfachantworten
Hallo PearsonsR,
Vielen Dank für Deine Antwort.
Du hattest bereits den richtigen "Riecher": Es waren Mehrfachantworten (2 mögliche Nennungen). Daher stimmen die Häufigkeiten jetzt leider nicht mehr.
Bislang sieht die Sytax folgendermaßen aus:
bzw. mit 4 Kategorien:
Die ursprünglichen 8 Kategorien (1:Sozialwohnung, 2:Mietwohnung,3:bei den Eltern, 4:Untermiete, 5:im gemieteten Haus, 6:im eigenen Haus, 7:Eigentumswohnung, 8:Wohngemeinschaft) sollen in 4 Kategorien umkodiert werden.
Das bedeutet widerum, dass einzelne Fälle definiert werden müssen. Hat ein Befragter z.B. "Sozialwohnung" und "Mietwohnung" angegeben, soll er in der Kategorie "Sozialwohnung" auftauchen.
Bei der Eingabe von "bei den Eltern" und "im eigenen Haus" soll er unter "Eigentum" kategorisiert werden etc..
Ist so etwas möglich? "and" und "or" ? oder "else if"? ...?
Für erneute Hilfe wäre ich sehr dankbar!
Beste Grüße
umas.
Vielen Dank für Deine Antwort.
Du hattest bereits den richtigen "Riecher": Es waren Mehrfachantworten (2 mögliche Nennungen). Daher stimmen die Häufigkeiten jetzt leider nicht mehr.
Bislang sieht die Sytax folgendermaßen aus:
Code: Alles auswählen
Compute f68_wohnart = 0.
if (f68_1 =1) f68_wohnart = 1.
if (f68_2 =1) f68_wohnart = 2.
if (f68_3 =1) f68_wohnart = 3.
if (f68_4 =1) f68_wohnart = 4.
if (f68_5 =1) f68_wohnart = 5.
if (f68_6 =1) f68_wohnart = 6.
if (f68_7 =1) f68_wohnart = 7.
if (f68_8 =1) f68_wohnart = 8.
compute f68_wohnart = 0.
variable label f68_wohnart 'Art der Wohnung'.
value labels f68_wohnart 1'Sozialwohnung' 2'Mietwohnung' 3'bei den Eltern'
4'Untermiete' 5'im gemieteten Haus' 6'im eigenen Haus'
7'Eigentumswohnung' 8'Wohngemeinschaft'.
Code: Alles auswählen
Compute f68_wohnart4kat = 0.
if (f68_1 =1) f68_wohnart4kat = 1.
if (f68_2 =1) f68_wohnart4kat = 2.
if (f68_4 =1) f68_wohnart4kat = 2.
if (f68_5 =1) f68_wohnart4kat = 2.
if (f68_6 =1) f68_wohnart4kat = 3.
if (f68_7 =1) f68_wohnart4kat = 3.
if (f68_3 =1) f68_wohnart4kat = 4.
if (f68_8 =1) f68_wohnart4kat = 4.
compute f68_wohnart4kat = 0.
variable label f68_wohnart4kat 'Art der Wohnung 4 Kategorien'.
value labels f68_wohnart4kat 1'Sozialwohnung' 2'Mieter' 3'Eigentümer' 4'Sonstiges' .
Das bedeutet widerum, dass einzelne Fälle definiert werden müssen. Hat ein Befragter z.B. "Sozialwohnung" und "Mietwohnung" angegeben, soll er in der Kategorie "Sozialwohnung" auftauchen.
Bei der Eingabe von "bei den Eltern" und "im eigenen Haus" soll er unter "Eigentum" kategorisiert werden etc..
Ist so etwas möglich? "and" und "or" ? oder "else if"? ...?
Für erneute Hilfe wäre ich sehr dankbar!
Beste Grüße
umas.
-
- Moderator
- Beiträge: 304
- Registriert: 17.01.2006, 19:20
Genau, mit "AND" klappt das.
Evtl. muss um die zwei Bedingungen noch ne Klammer drumherum, müsstest Du mal ausprobieren.
Die zwei gegebenen Antwortenm gehen dann nur als ein 1 Fall in die Häufigkeiten ein.
BTW: Bitte benutzt für Syntax die "Code"-Tags. Das vereinfacht das Lesen um einiges. Danke!
Bei der Eingabe von "bei den Eltern" und "im eigenen Haus" soll er unter "Eigentum" kategorisiert werden etc..
Code: Alles auswählen
if (f68_3 =1) AND (f68_6=1) f68_wohnart4kat = 1.
Die zwei gegebenen Antwortenm gehen dann nur als ein 1 Fall in die Häufigkeiten ein.
BTW: Bitte benutzt für Syntax die "Code"-Tags. Das vereinfacht das Lesen um einiges. Danke!
Literatur?
Bücher zum Thema SPSS und Statistik (Amazon)
Bücher zum Thema SPSS und Statistik (Amazon)
-
- Beiträge: 2
- Registriert: 13.06.2006, 16:47
gleiches Problem, nur die lösung...
Hallo!
Ich bearbeite gerade ein ähnliches Problem. Die Lösung hier hat mich schon weiter gebracht, aber leider noch nicht zum Ziel. Wenn ich
ausführe, werden die Werte, die ich oben angegeben habe nicht zugewiesen.
bin nicht wirklich bewandert in syntax :-/
Ich bearbeite gerade ein ähnliches Problem. Die Lösung hier hat mich schon weiter gebracht, aber leider noch nicht zum Ziel. Wenn ich
Code: Alles auswählen
Compute ForschJN = 0.
if (forsch1 =1) ForschJN= 1.
if (forsch2 =2) ForschJN= 1.
if (forsch3 =3) ForschJN= 2.
if (forsch4 =4) ForschJN= 2.
if (forsch5 =5) ForschJN= 2.
compute ForschJN= 0.
variable label ForschJN 'Forschend Tätig'.
value labels ForschJN 1'nicht forschend' 2'aktiv forschend'.
Execute.
bin nicht wirklich bewandert in syntax :-/
-
- Beiträge: 18
- Registriert: 09.01.2008, 12:46
Frage zur Verknüpfung der Bedingungen
Hallo alle zusammen!
Ich möchte auch mehrere Dummies in eine Variable umkodieren. Bisher hat das mit den Syntax-Befehlen (nach dem Vorbild eurer Beiträge) ganz gut geklappt. Nur dir Verknüpfung mit AND gelingt mir nicht. Ich habe in verschiedenen Variationen versucht Klammern zu setzen, aber es passiert nichts, wenn ich auf "ausführen" drücke.
Kann mir jemand sagen, wie ich das richtig mache?
Vielen Dank schonmal!
Anna
P.S. Und das ist meine Eingabe im Syntax-Editor:
Ich möchte auch mehrere Dummies in eine Variable umkodieren. Bisher hat das mit den Syntax-Befehlen (nach dem Vorbild eurer Beiträge) ganz gut geklappt. Nur dir Verknüpfung mit AND gelingt mir nicht. Ich habe in verschiedenen Variationen versucht Klammern zu setzen, aber es passiert nichts, wenn ich auf "ausführen" drücke.
Kann mir jemand sagen, wie ich das richtig mache?
Vielen Dank schonmal!
Anna
P.S. Und das ist meine Eingabe im Syntax-Editor:
Code: Alles auswählen
compute BERUF = 0.
if (schüler=1) BERUF = 1.
if (student=1) BERUF = 2.
[if (student=1) AND (berufstä=1)] BERUF = 3.
if (auszubil=1) BERUF = 4.
if (berufstä=1) BERUF = 5.
[if (berufstä=1) AND (arbeitss=1)] BERUF = 6.
if (arbeitss=1) BERUF = 7.
if (sonstige=1) BERUF = 8.
variable label BERUF 'Beruflicher Status'.
value labels BERUF 1'Schüler/in' 2'Student/in' 3'Student und berufstätig'
4'Auszubildende/r' 5'berufstätig' 6'berufstätig und arbeitssuchend'
7'arbeitssuchend' 8'Sonstiges'.
-
- Beiträge: 67
- Registriert: 17.01.2007, 18:15
Hallo Anna,
deine Syntax ist im Prinzip in Ordnung. Bei verknüpften Bedingungen brauchst du aber nur eine Klammer. In diese Klammer schreibst du alle Bedingen.
Schreibe deinen dritten If-Befehl folgendermaßen um:
if (student=1 AND berufstä=1) BERUF = 3.
Der sechste If-Befehl müsste entsprechend umformuliert werden:
if (berufstä=1 AND arbeitss=1) BERUF = 6.
exe.
Nach den If-Befehlen füge noch "exe" ein. dann werden die If-Transformationen auch ausgeführt.
So müsste es klappen.
Gruß
Volker
deine Syntax ist im Prinzip in Ordnung. Bei verknüpften Bedingungen brauchst du aber nur eine Klammer. In diese Klammer schreibst du alle Bedingen.
Schreibe deinen dritten If-Befehl folgendermaßen um:
if (student=1 AND berufstä=1) BERUF = 3.
Der sechste If-Befehl müsste entsprechend umformuliert werden:
if (berufstä=1 AND arbeitss=1) BERUF = 6.
exe.
Nach den If-Befehlen füge noch "exe" ein. dann werden die If-Transformationen auch ausgeführt.
So müsste es klappen.
Gruß
Volker
-
- Beiträge: 18
- Registriert: 09.01.2008, 12:46
Hallo nochmal!
Sorry, aber irgendwie funktioniert das nicht. Ich habe alles nochmal von vorne durchgeführt mit den andersgesetzten Klammern und trotzdem werden bei mir Probanden, die Student und berufstätig sind als 5 anstatt als 3 kategorisiert. Versteh nicht was ich falsch gemacht habe.
Gruß, Anna
Sorry, aber irgendwie funktioniert das nicht. Ich habe alles nochmal von vorne durchgeführt mit den andersgesetzten Klammern und trotzdem werden bei mir Probanden, die Student und berufstätig sind als 5 anstatt als 3 kategorisiert. Versteh nicht was ich falsch gemacht habe.
Gruß, Anna
-
- Beiträge: 67
- Registriert: 17.01.2007, 18:15
Hallo Anna,
das liegt daran, dass die Studenten, die beruftätig sind in zwei If-Befehlen die Bedingung erfüllen. Die If-Befehle werden in der Reihenfolge abgearbeitet, in der du sie in deiner Syntax auflistest. In deinem Fall passiert folgendes:
SPSS sucht im dritten If-Befehl nach der Merkmalskombination "Student" und "berufstätig". Wenn diese Kombination erfüllt ist, wird der Wert 3 in der Variable Beruf gesetzt.
Danach sucht SPSS im fünften If-Befehl nach dem Merkmal "berufstätig" und setzt den Wert 5.
Da berufstätige Studenten in beiden If-Befehlen die Bedingungen erfüllen, erhalten Sie nach dem dritten If-Befehl den Wert 3, beim fünften If-Befehl wird dieser Wert aber durch den Wert 5 ersetzt.
Bei If-Befehlen, die sich in den Bedingungen nicht ausschließen, ist die Reihenfolge wichtig. Tausch doch mal die Anordnung der beiden If-Befehle. Lass zuerst nach "berufstätig" suchen, danach nach "Student" und beruftsätig". Dann müsste es klappen. In diesem Fall hast du aber weniger Berufstätige.
In den If-Befehlen 6 (berufstätig und arbeitssuchend) und 7 (arbeitssuchend) müsstest du das gleiche Problem haben. Tausche auch hier die Reihenfolge.
Gruß
Volker
das liegt daran, dass die Studenten, die beruftätig sind in zwei If-Befehlen die Bedingung erfüllen. Die If-Befehle werden in der Reihenfolge abgearbeitet, in der du sie in deiner Syntax auflistest. In deinem Fall passiert folgendes:
SPSS sucht im dritten If-Befehl nach der Merkmalskombination "Student" und "berufstätig". Wenn diese Kombination erfüllt ist, wird der Wert 3 in der Variable Beruf gesetzt.
Danach sucht SPSS im fünften If-Befehl nach dem Merkmal "berufstätig" und setzt den Wert 5.
Da berufstätige Studenten in beiden If-Befehlen die Bedingungen erfüllen, erhalten Sie nach dem dritten If-Befehl den Wert 3, beim fünften If-Befehl wird dieser Wert aber durch den Wert 5 ersetzt.
Bei If-Befehlen, die sich in den Bedingungen nicht ausschließen, ist die Reihenfolge wichtig. Tausch doch mal die Anordnung der beiden If-Befehle. Lass zuerst nach "berufstätig" suchen, danach nach "Student" und beruftsätig". Dann müsste es klappen. In diesem Fall hast du aber weniger Berufstätige.
In den If-Befehlen 6 (berufstätig und arbeitssuchend) und 7 (arbeitssuchend) müsstest du das gleiche Problem haben. Tausche auch hier die Reihenfolge.
Gruß
Volker