Seite 1 von 1

Hilfe beim Mergen

Verfasst: Mi Jan 13, 2021 4:29 pm
von AWDRA
Liebes Forum,

Ich bin gerade dabei an meiner Doktorarbeit zu arbeiten und versuche gerade zwei Datasets anhand der Variable "Datum" zu mergen.

Sowohl die Funktionen merge() und merge.data.frame kommen zu keinem vernünftigen Ergebnis. Ich erhalte die Warnmeldung:
"Warnmeldung:
In `[<-.factor`(`*tmp*`, ri, value = c(946684800, 946771200, 946857600, :
ungültiges Faktorniveau, NA erzeugt"

Zu meinen Daten: Ich habe Krankenblätter die ich mithilfe der Funktion table() zu Fallzahlen pro Tag umgewandelt habe. Leider fallen bei dieser Art der Umwandlung alle Daten an denen keine Patienten mit dem entsprenden Fall ins Krankenhaus gekommen sind weg und meine vorher im POSIXct Format vorliegenden Daten werden umgewandelt in factors. In dem Dataframe2 mit dem ich die Tabelle mergen möchte liegen die Daten aber weiterhin als POSIXct Format vor. Ist das der Grund warum ich nicht anhand der Variable "Datum" mergen kann? Wenn Ja wie kann ich meine jetzt als factor vorliegende Variable "Datum" im Dataframe1 wieder in das POSIXct Format umwandeln? Wenn nein wie kann ich die beiden Dataframes vernünftigerweise mergen? Ich habe kein Problem damit wenn es mir NAs erzeugt, diese könnte ich ja schließlich mit der is.na() Funktion zur Zahl 0 umwandeln und hätte genau was ich bräuchte.

Vielen lieben Dank schon einmal für die Antworten.
Ich bin über jede Hilfe sehr dankbar.

Re: Hilfe beim Mergen

Verfasst: Mi Jan 13, 2021 4:50 pm
von Athomas
Ein Datensatz sagt mehr als tausend Worte - oder hier vielleicht mal zwei!
Du bist mit Sicherheit auf der richtigen Spur, es ist halt nur die Frage, wann was schief gelaufen ist!

Re: Hilfe beim Mergen

Verfasst: Do Jan 14, 2021 1:12 pm
von T3stversion
Ins Blaue, da ohne Beispieldaten schwierig:

Code: Alles auswählen

dat1[,x]<-strptime(as.character(dat1[,x]),format="%d.%m.%Y") #x ist die Spalte mit der Zeit, das Format muss eventuell angepasst werden

names(dat1)[x]<-names(dat2)[x]<-"zeit" #x ist wieder die Spalte mit der Zeit, beide brauche den gleichen Namen

library(plyr) # für die nachfolgende "join"-Funktion

dat3<-join(dat1,dat2,by="zeit") #Datensätze mergen(joinen), eventuell die Attribute "type" und "match" verwenden 

klappt das?