Beobachtunge aufgrund von Datumsvariablen zusammenführen
Verfasst: Mi Aug 26, 2020 4:12 pm
Hallo Zusammen,
ich habe mal wieder ein Datenmanagementproblem
Ich habe einen Datensatz, in dem mehrere Beobachtungen pro Person (Id) vorkommen können, nicht müssen. Für jede Beobachtung gibt es ein Start- und ein Stoppdatum. Zusätzlich gibt es weitere Variablen.
Ein vereinfachtes Beispiel:
Bei einer Person im Beispieldatensatz (Id = 1) kommt es vor, dass 3 der 4 Beobachtungen quasi nahtlos ineinander übergehen, sprich das Stoppdatum der chronologisch vorhergehenden Beobachtung liegt ein Tag vor dem Startdatum der nächsten Beobachtung.
Diese drei Beobachtungen sollen in eine beobachtung/ Zeile zusammengefasst werden, wobei als Startdatum der Wert der ursprüngliche ersten Beobachtung und als Stoppdatum der Wert der ursprünglich letzten Beobachtung gewählt werden soll. Die übrigen Variablen sollen unterschiedlich behandelt werden. Im Beispiel soll für Var1 der Wert der chronologisch ersten Beobachtung und für Variable 2 der Wert der chronologisch letzten Beobachtung übernommen werden.
Das Ergebnis sollte für das Beispiel so aussehen:
Herzlichen Dank für Eure Unterstützung!
Jörg
ich habe mal wieder ein Datenmanagementproblem
Ich habe einen Datensatz, in dem mehrere Beobachtungen pro Person (Id) vorkommen können, nicht müssen. Für jede Beobachtung gibt es ein Start- und ein Stoppdatum. Zusätzlich gibt es weitere Variablen.
Ein vereinfachtes Beispiel:
Code: Alles auswählen
library(tidyverse)
Id<-c(1,1,1,1,2)
Startdatum<-as.Date(c("2020-06-22","2020-06-24","2020-07-28","2020-08-16","2020-06-22"))
Stoppdatum<-as.Date(c("2020-06-24","2020-07-28","2020-08-02","2020-08-19","2020-06-24"))
Var1<-c("a","b","c","D","E")
Var2<-c("g","h","j","k","l")
df<-tibble(Id,Startdatum,Stoppdatum,Var1,Var2)
Diese drei Beobachtungen sollen in eine beobachtung/ Zeile zusammengefasst werden, wobei als Startdatum der Wert der ursprüngliche ersten Beobachtung und als Stoppdatum der Wert der ursprünglich letzten Beobachtung gewählt werden soll. Die übrigen Variablen sollen unterschiedlich behandelt werden. Im Beispiel soll für Var1 der Wert der chronologisch ersten Beobachtung und für Variable 2 der Wert der chronologisch letzten Beobachtung übernommen werden.
Das Ergebnis sollte für das Beispiel so aussehen:
Code: Alles auswählen
Id2<-c(1,1,2)
Startdatum2<-as.Date(c("2020-06-22","2020-08-16","2020-06-22"))
Stoppdatum2<-as.Date(c("2020-08-02","2020-08-19","2020-06-24"))
Var1_2<-c("c","D","E")
Var2_2<-c("g","k","l")
df2<-tibble(Id2,Startdatum2,Stoppdatum2,Var1_2, Var2_2)
Jörg