SPSS Variablen Verketten

Alles rund um SPSS Syntax und Programmierung.

SPSS Variablen Verketten

Beitragvon AnKa23 » Do 11. Apr 2024, 17:21

Liebe Community,

für meinen Datensatz bin ich leider etwas verzweifelt & finde keine Lösung!

Ich habe 4 Variablen (numerisch, Breite 8 mit fehlenden Werten (-99,-88,-99)) und möchte diese in eine Variable verketten.
Die Variablen haben unterschiedliche Werte und sind einstellig oder zweistellig (1 oder 10 zum Beispiel), am Ende brauche ich aber eine achtstellige Zahl.
Zum Beispiel soll aus den Variablen mit den Werten var1 = 1, var2=10, var3=3 var4=5 die VariableV = 01100305 werden.

Leider klappt das bisher nicht.
Über Hilfe oder Tipps wäre ich super dankbar!

Viele Grüße und Danke
Anka
AnKa23
 
Beiträge: 3
Registriert: Do 11. Apr 2024, 17:12
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: SPSS Variablen Verketten

Beitragvon ponderstibbons » Do 11. Apr 2024, 18:51

AnKa23 hat geschrieben:Liebe Community,

Kann man leider nicht von sprechen.
für meinen Datensatz bin ich leider etwas verzweifelt

Ach so, ja.
Ich habe 4 Variablen (numerisch, Breite 8 mit fehlenden Werten (-99,-88,-99)) und möchte diese in eine Variable verketten.
Die Variablen haben unterschiedliche Werte und sind einstellig oder zweistellig (1 oder 10 zum Beispiel), am Ende brauche ich aber eine achtstellige Zahl.
Zum Beispiel soll aus den Variablen mit den Werten var1 = 1, var2=10, var3=3 var4=5 die VariableV = 01100305 werden.

neuvar = var1*1000000 + var2*10000 + var3*100 + var4 .


Was Du "am Ende Zahl" nennst, ist eigentlich nur eine Ziffernfolge, weil eine voranstehende Null als Zahl nicht geht.
Bei den Fällen, wo var1 nur einstellig ist, musst Du entweder im Ergebnis mit siebenstelligen Zahlen vorliebnehmen,
oder Du musst das Ganze am Ende noch in eine String-Variable umwandeln und bei den siebenstelligen Zahlen eine "0"
voranstellen.

Leider klappt das bisher nicht.

Was heißt das, was hast Du probiert?

Mit freundlichen Grüßen

PonderStibbons
ponderstibbons
 
Beiträge: 2480
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 1
Danke bekommen: 256 mal in 255 Posts

Re: SPSS Variablen Verketten

Beitragvon AnKa23 » Fr 12. Apr 2024, 12:56

Liebe/r Ponderstibbons,

danke für die schnelle Rückmeldung!

Bei dem Code, den du mir vorgeschlagen hast, kommt folgendes raus.
v1=1 v2=10 v3=1 v4=1 richtige Reihenfolge für die Variable wäre dann 1100101, leider kommt 10100101 raus, haben Sie eine Idee, warum das so ist?
Das Problem mit der 01 vorne würde ich einfach so lösen, dass ich die v1 alle so umkodiere, dass sie 01 02 03... schon bereits ist oder funktioniert das dann nicht mehr, weil es dann eine Ziffernfolge ist bevor ich den Befehl zu Verkettung nutze?
Oh und wenn die Werte eine -99 enthalten dann wird das gar nichts miti der neuen Variable, diese Zielen bleiben leer


Vielen lieben Dank schon mal, so nah war ich der Lösung noch nicht!

Viele Grüße
AnKa
Zuletzt geändert von AnKa23 am Fr 12. Apr 2024, 12:57, insgesamt 1-mal geändert.
AnKa23
 
Beiträge: 3
Registriert: Do 11. Apr 2024, 17:12
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: SPSS Variablen Verketten

Beitragvon ponderstibbons » Fr 12. Apr 2024, 23:00

v1=1 v2=10 v3=1 v4=1 richtige Reihenfolge für die Variable wäre dann 1100101, leider kommt 10100101 raus, haben Sie eine Idee, warum das so ist?

Der Vorschlag lautet, die erste Ziffer mit einer Million zu multiplizieren, nicht mit 10 Millionen.
Das Problem mit der 01 vorne würde ich einfach so lösen, dass ich die v1 alle so umkodiere, dass sie 01 02 03... schon bereits ist
oder funktioniert das dann nicht mehr, weil es dann eine Ziffernfolge ist bevor ich den Befehl zu Verkettung nutze?

Warum probierst Du es nicht einfach?

Wie gesagt gibt es in SPSS String Variablen und numerische Variablen. 01 ist in SPSS nur als eine
Zeichenfolge möglich, nicht als Zahl. Damit kann SPSS leider ebenso wenig multiplizieren wie mit
abcde.

Wenn Du die numerische Variable neuvar erzeugt hast, geht die Umwandlung und Ergänzung
von führenden Nullen mit

STRING zielvariable (A8).
COMPUTE zielvariable = STRING(neuvar, F8.0).
EXECUTE.
IF(v1 < 10) zielvariable = CONCAT("0",LTRIM(zielvariable) ).
EXECUTE.

Ist nicht getestet, habe aktuell kein SPSS.

Mit freundlichen Grüßen

PonderStibbons
ponderstibbons
 
Beiträge: 2480
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 1
Danke bekommen: 256 mal in 255 Posts

Re: SPSS Variablen Verketten

Beitragvon AnKa23 » Sa 13. Apr 2024, 12:54

Danke, du hast Recht, die Zahl ist jetzt korrekt, das mit der 0 geht noch nicht, aber das bekomme ich hin denke ich.

Mein Hauptproblem bleiben die Missings, weil die Zielvariable für Variablen mit Missings (-99) nicht kodiert wird.

Hast du eine Idee?

Danke auf jeden Fall für die große Hilfe bisher und ein schönes Wochenende :)!
AnKa23
 
Beiträge: 3
Registriert: Do 11. Apr 2024, 17:12
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: SPSS Variablen Verketten

Beitragvon ponderstibbons » Sa 13. Apr 2024, 14:24

Mein Hauptproblem bleiben die Missings, weil die Zielvariable für Variablen mit Missings (-99) nicht kodiert wird.
Hast du eine Idee?

Da müsstest Du schon angeben, was im Falle fehlender Werte rauskommen soll. Wenn ein Wert
fehlt, sollen stattdessen zwei Nullen dahin? Oder die -99 soll erhalten bleiben?

Vielleicht willst Du statt v1+v2+v3+v4 (was in SPSS nicht gültig berechnet werden kann, sobald
einer der Summanden fehlt) die Funktion SUM(v1,v2,v3,v4) verwenden, die addiert die Variablen
ebenfalls, ignoriert aber dabei fehlende Werte.

Mit freundlichen Grüßen

PonderStibbons
ponderstibbons
 
Beiträge: 2480
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 1
Danke bekommen: 256 mal in 255 Posts


Zurück zu SPSS Syntax

Wer ist online?

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