Datensätze mit Zeitlimit

Alles rund um SPSS Syntax und Programmierung.

Datensätze mit Zeitlimit

Beitragvon Daphne » Fr 15. Jan 2021, 15:05

Hallo zusammen,

ich habe zwei Datensätze:

Datensatz 1
ID,event,variable1,date1
1,e,10,2019-10-16
1,c,20,2019-10-18
2,e,20,2019-12-04

Datensatz 2
ID,variable2,date2
1,a,2019-10-11
1,b,2019-10-18
2,c,2019-12-03
2,d,2019-12-13

Mein Ziel ist es, die beiden Datensätze mithilfe der Variable "ID" zu einem zusammenzuführen.

Allerdings muss ich dabei ein Zeitlimit beachten:
Die Variable "variable2" darf nur dann im zusammengeführten Datensatz mit ihrem Wert dastehen, wenn die Variablen "date1" und "date2" weniger als eine vorher festgelegte maximale Anzahl von Tagen auseinander liegen. Wenn dies nicht der Fall ist, möchte ich den Wert für "variable2" durch NA ersetzen.

Beispiel: Ich habe für ID 9 zwei Datensätze, einer im Datensatz 1 und einer im Datensatz 2. Im ersten Datensatz wurden die Daten für ID 9 am 01.01.2021 erhoben, im zweiten Datensatz am 05.01.2021. Wenn ich mich nun auf einen Zeitraum von 2 Tagen festlege zwischen den beiden Erhebungsterminen, dann muss ich nach der Zusammenführen der beiden Datensätzen für ID 9 variable2 mit "NA" ersetzen. Wenn ich mich aber für einen Zeitraum von 5 Tagen entschieden habe, dann kann der ursprüngliche Wert für variable2 stehen bleiben.
Hierbei ist noch zusätzlich zu beachten, dass es falls es in einem Datensatz mehrere Datensätze mit der gleichen ID gibt, alle auf das Zeitlimit geprüft werden sollen. Wenn mehre Datensätze zueinander passen, dann sollen sie alle so übernommen werden (Siehe Beispiel unten, 10 Tageszeitlimit zur Verdeutlichung).

Zusätzlich hierzu interessiere ich mich nur für den Wert von "variable2" vom zweiten Datensatz, d.h. alle anderen Variablen aus dem zweiten Datensatz (in diesem Fall: date2) sollen nicht übernommen werden.

Beispiele, um das Ganze zu verdeutlichen:
Für ein Tageslimit von max. 1 Tag zwischen "date1" und "date2" sehe der fertige Datensatz so aus:
id,event,variable1,date1,variable2
1,e,10,2019-10-16,NA # NA da es im zweiten Datensatz keine Zeile für ID 1 gibt für die date1-date2 <= 1 gilt
1,c,20,2019-10-18,b
2,e,20,2019-12-04,c

Für ein Tageslimit von max. 2 Tagen zwischen "date1" und "date2" sehe der fertige Datensatz so aus:
1,e,10,2019-10-16,b
1,c,20,2019-10-18,b
2,e,20,2019-12-04,c

Für ein Tageslimit von max. 10 Tagen zwischen "date1" und "date2" sehe der fertige Datensatz so aus:
1,e,10,2019-10-16,a
1,e,10,2019-10-16,b
1,c,20,2019-10-18,a
1,c,20,2019-10-18,b
2,e,20,2019-12-04,c
2,e,20,2019-12-04,d


Wie kann ich dieses Vorhaben in SPSS-Syntax umsetzen?
Daphne
 
Beiträge: 1
Registriert: Fr 15. Jan 2021, 14:24
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Datensätze mit Zeitlimit

Beitragvon ponderstibbons » Fr 15. Jan 2021, 20:55

Du könntest zunächst in jeder Datei eine Variable Quelle mit den Werten "1" (in Datei 1) bzw. "2" (in Datei 2) erzeugen,
außerdem datum1 und datum2 umbenennen in datum. Dann die Dateien untereinander zusammenfügen,
nach Id und datum sortieren und mit LAG arbeiten, so ala
IF(Quelle = 2 AND LAG(Quelle)=1 AND ctime.days(LAG(datum)-datum) < 2) variable2 = "NA" .

Das kann man dann weitertreiben mit Aufwärts- und Abwärtssortierung nach datum und
Variablenberechnungen unter Verwendung von LAG.

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


Zurück zu SPSS Syntax

Wer ist online?

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