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.
Hilfe beim Mergen
Re: Hilfe beim Mergen
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!
Du bist mit Sicherheit auf der richtigen Spur, es ist halt nur die Frage, wann was schief gelaufen ist!
-
- Beiträge: 6
- Registriert: So Jan 03, 2021 8:36 pm
Re: Hilfe beim Mergen
Ins Blaue, da ohne Beispieldaten schwierig:
klappt das?
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