Variablen in einem neuen Datensatz anhand Schlüsselvariable

Alles rund um SPSS Syntax und Programmierung.

Variablen in einem neuen Datensatz anhand Schlüsselvariable

Beitragvon Tianchris » Mo 19. Aug 2019, 12:28

Hallo zusammen,
ich habe ein weiteres Problem in einem großen Datensatz (mehr als eine Millionen Fälle).
Ich denke, der Titel trifft das Problem nicht richtig, daher hier ausführlich:
Das Problem, welches ich gerne mit einer Syntax regeln würde, wäre dieses:

Ich möchte Variablen (gekauftes Produkt) aus einem Datensatz (nennen wir in Datensatz 1) in einen anderen (Datensatz 2) anhand einer Schlüsselvariable (ID taucht nur einmal in Datensatz 2 auf; taucht unbestimmt mehrfach in Datensatz 1 auf) hinzufügen. Das Besondere ist, das die Variable des gekauften Produktes als neue Variable im anderen Datensatz 2 aufgenommen werden soll. Bis hierhin ist es einfaches Hinzufügen von neuen Variablen.
ABER, da Personen immer mehr als ein Produkt kaufen und ich nicht möchte, dass das erste Produkt zweimal aufgenommen wird, sollte es möglich sein, dass in Datensatz 2 mehrere gekaufte Produkte (Datensatz 1) einer ID in Datensatz 2 zugeordnet werden soll. Dementsprechend sollten mehrere gekaufte Produkte aus Datensatz 1 der ID in Datensatz 2 zugeordnet und immer weitere Produktvariablen (die Anzahl der Produkte variiert und kann von 1 bis über 100 gehen) in Datensatz 2 (automatisch?!) hinzugefügt werden.
Ich möchte also alle gekauften Produkte einer ID aus Datensatz 1 (mehrere Fälle mit der gleichen ID) in mehreren Variablen einer ID in Datensatz 2 zugeordnet haben (ohne die Dopplung des ersten Produktes-hierzu können noch weitere Schlüsselvariablen genutzt werden).

Ich hoffe ich konnte es verständlich erklären?!

Mit freundlichen Grüßen
Tianchris
Tianchris
 
Beiträge: 9
Registriert: Do 15. Aug 2019, 14:32
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variablen in einem neuen Datensatz anhand Schlüsselvaria

Beitragvon ponderstibbons » Mo 19. Aug 2019, 12:54

Womöglich geht es darum, zunächst aus dem "langen Format" (alle Produkte in 1 Variable, mehrere Zeilen für dieselbe Id) das "breite" Format (nur 1 Zeile für jede Id, für jeden Produkteintrag eine eigene Variable) zu machen und danach die Dateien zu matchen. Der erste Schritt könnte ein Fall für "Datei umstrukturieren, Fälle in Variablen umwandeln" sein.

Mit freundlichen Grüßen

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

Re: Variablen in einem neuen Datensatz anhand Schlüsselvaria

Beitragvon Tianchris » Mo 19. Aug 2019, 16:06

Die Umstrukturierung und das Zusammenführen anhand der ID haben gut funktioniert. :D
Das letzte Problem bei dieser Zusammenführung ist, dass ein gekauftes Produkt jetzt zweifach gezählt wird, obwohl es nur einmal gekauft wurde. Der nächste Schritt wäre das gekaufte Produkt bzw. die Variable in der der Wert erfasst wurde zu ermitteln und diesen Wert dann zu löschen. Leider weiß ich nicht welches Produkt der neuen zahlreichen Variablen das doppelte Produkt ist und es kann von Fall zu Fall variieren.
Dabei darf nicht der Referenzwert gelöscht werden, sondern es soll der des neu gekauften Produktes gelöscht werden, das ist die Schwierigkeit!

Meint jemand dafür eine Lösung zu finden?!
Tianchris
 
Beiträge: 9
Registriert: Do 15. Aug 2019, 14:32
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variablen in einem neuen Datensatz anhand Schlüsselvaria

Beitragvon ponderstibbons » Mo 19. Aug 2019, 16:42

Weiß nicht, ob ich es recht verstehe. Vielleicht sollte in einem vorgelagerten Schritt die Information mit dem 1 Produkt an die entsprechende
Variable in der "langen Datei" angefügt werden (Fälle hinzufügen), danach kann man nach Id und Produkt sortieren und mit LAG
innerhalb einer Id feststellen, ob ein Produkt-Eintrag eine Doublette ist und gelöscht gehört. Danach dann umstrukturieren.

Mit freundlichen Grüßen

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

Re: Variablen in einem neuen Datensatz anhand Schlüsselvaria

Beitragvon Tianchris » Mo 19. Aug 2019, 17:37

Ich denke so würde ich auf mein gewünschtes Ergebnis kommen.
Also sollte ich am besten der "langen Datei" nochmal Produkt 1 hinzufügen, dann nach doppelten Werten innerhalb einer ID suchen lassen und diesen Wert dann löschen. Dann Produkt 1 löschen und die "neue" (ohne Produkt 1 mit zweifachen Auftreten) lange Datei an die ursprüngliche mittels ID hinzufügen. So sollten dann alle gekauften Produkte eines Käufers seiner ID angehängt sein und kein fall sollte doppelt auftreten.

Ich weiß aber leider nicht wie die LAG-Syntax (also zum auffinden des doppelten Wertes und vor allem der Löschung des Wertes) dazu aussieht?! Das ist meine letzte Hürde in diesem Prozess ... (hoffe ich)...
Tianchris
 
Beiträge: 9
Registriert: Do 15. Aug 2019, 14:32
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variablen in einem neuen Datensatz anhand Schlüsselvaria

Beitragvon ponderstibbons » Mo 19. Aug 2019, 18:18

Ich weiß aber leider nicht wie die LAG-Syntax (also zum auffinden des doppelten Wertes und vor allem der Löschung des Wertes) dazu aussieht?!

Wieso, Du hast LAG doch bereits an anderer Stelle benutzt.

Mit freundlichen Grüßen

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

Re: Variablen in einem neuen Datensatz anhand Schlüsselvaria

Beitragvon Tianchris » Di 20. Aug 2019, 10:03

Wieso, Du hast LAG doch bereits an anderer Stelle benutzt.


Das ist richtig, aber hier möchte ich ja nicht innerhalb mehrerer Fälle suchen, sondern müsste aus einem Fall das Produkt finden, das identisch mit Produkt 1 ist. Und Produkt 1 lässt sich nicht mit "Sort" finden, da die neuen Produkte > 100 sind.
Ich habe jetzt einen anderen Ansatz. Und zwar würde ich bei meinem alten Kommentar ansetzen (bei dem ich auch einen LAG-Befehl genutzt habe).
Vielen Dank schon mal bis hierhin! ich denke ohne eure/Deine Hilfe hätte ich das nicht so schnell auf die Reihe bekommen!

Mit freundlichen Grüßen
Tianchris
Tianchris
 
Beiträge: 9
Registriert: Do 15. Aug 2019, 14:32
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variablen in einem neuen Datensatz anhand Schlüsselvaria

Beitragvon ponderstibbons » Di 20. Aug 2019, 11:24

Das ist richtig, aber hier möchte ich ja nicht innerhalb mehrerer Fälle suchen, sondern müsste aus einem Fall das Produkt finden, das identisch mit Produkt 1 ist. Und Produkt 1 lässt sich nicht mit "Sort" finden, da die neuen Produkte > 100 sind.

Wenn jede Id mehrere Zeilen (Produkte) hat, kann man nach Id und der "Produkt"-Variable sortieren und mit LAG die Fälle auswählen,
bei denen 1.) entweder die Id nicht gleich der Id in der vorhergehenden Zeile ist oder 2.) der Eintrag in "Produkt" nicht gleich dem Eintrag
eine Zeile drüber ist. Aber vielleicht habe ich die Datenstruktur falsch verstanden.

Mit freundichen Grüßen

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


Zurück zu SPSS Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron