Seite 1 von 1
Tabellen zusammenführen in R
Verfasst: Di Apr 25, 2023 11:43 am
von Ante
Hallo ,
ich möchte zwei Datensätze zusammenführen und dies anhand von identischen CASE Nummern der Probanden.
Mein Code:
Attention <-merge(Attention_ASQ, Attention_DCS, Attention_UTAUT, by="CASE")
Ich erhalte dann folgende Fehlermeldung: "Error in fix.by(by.x, x) : 'by' muss eine oder mehrere Spalten als Zahlen, Namen oder logische Werte spezifizieren" .
Daraufhin habe ich folgendes ausprobiert (aber es hat dennoch nicht geklappt):
Daten$CASE <- as.numeric(Daten$CASE)
Attention <-merge(Attention_ASQ, Attention_DCS, Attention_UTAUT, by="CASE")
Was mache ich falsch!?
Danke im Voraus für eine Antwort!
Re: Datensätze zusammenführen in R
Verfasst: Di Apr 25, 2023 12:03 pm
von bigben
Wofür stehen denn Attention_ASQ, Attention_DCS und Attention_UTAUT bzw. Was soll merge() mit Attention_UTAUT anfangen? Es sieht aus, als wolltest Du drei Tabellen zusammenführen.
LG,
Bernhard
Re: Datensätze zusammenführen in R
Verfasst: Di Apr 25, 2023 1:18 pm
von Ante
Hallo Bernhard,
Diese drei Datensätze/Tabellen die ich erstellt habe (Attention_ASQ, Attention_DCS und Attention_UTAUT) haben alle eine Spalte, die "CASE" heißt und ich möchte diese drei Tabellen hinsichtlich den identischen CASE Nummern zusammenführen, damit identischen Probanden (cases) zusammengeführt werden. Geht dies nicht mit der merge() ?
LG,
Ante
Re: Datensätze zusammenführen in R
Verfasst: Di Apr 25, 2023 1:37 pm
von Ante
Ah jetzt da ich ich nur diese beiden Tabellen zusammenführe klappt es.
Code: Alles auswählen
Attention <-merge(Attention_ASQ, Attention_DCS, by="CASE")
Anscheinend kann man nur zwei Tabellen zusammenführen. Außerdem ist mir aufgefallen, dass die Tabelle Attention_UTAUT auch gar keine identischen Cases wie die anderen Tabellen hat. Vielleicht haben diese zwei Gründe dazu geführt, dass es nicht geklappt hat und folgende Fehlermeldung erschien: "Error in fix.by(by.x, x) :
'by' muss eine oder mehrere Spalten als Zahlen, Namen oder logische Werte spezifizieren".
LG,
Ante
Re: Datensätze zusammenführen in R
Verfasst: Di Apr 25, 2023 2:36 pm
von bigben
Du hattest oben geschrieben "ich möchte zwei Datensätze zusammenführen".
Merge führt zwei Tabellen zusammen und wenn man mehr Tabellen braucht, muss man das nacheinander machen. Das dritte unbenannte Argument hat merge wohl als by oder als by.x interpretiert und das machte dann keinen Sinn.
LG, Bernhard
Re: Datensätze zusammenführen in R
Verfasst: Di Apr 25, 2023 4:20 pm
von Athomas
bigben hat geschrieben: Di Apr 25, 2023 2:36 pm
Merge führt zwei Tabellen zusammen und wenn man mehr Tabellen braucht, muss man das nacheinander machen.
Und weil mir genau das bei mehreren Tabellen ziemlich auf den Senkel geht, mache ich das gerne nach dem folgenden Schema:
Code: Alles auswählen
library(data.table)
DT1 <- data.table(Gruppe=sample(LETTERS, 15), Wert=runif(15), Bedeutung="v")
DT2 <- data.table(Gruppe=sample(LETTERS, 17), Wert=runif(17), Bedeutung="w")
DT3 <- data.table(Gruppe=sample(LETTERS, 19), Wert=runif(19), Bedeutung="x")
DT4 <- data.table(Gruppe=sample(LETTERS, 21), Wert=runif(21), Bedeutung="y")
DT5 <- data.table(Gruppe=sample(LETTERS, 23), Wert=runif(23), Bedeutung="z")
DT.long <- rbindlist(list(DT1,DT2,DT3,DT4,DT5), fill=TRUE)
DT.wide <- dcast(DT.lang, Gruppe ~ Bedeutung, value.var="Wert")