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!
Tabellen zusammenführen in R
Tabellen zusammenführen in R
Zuletzt geändert von Ante am Di Apr 25, 2023 3:22 pm, insgesamt 1-mal geändert.
Re: Datensätze zusammenführen in R
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
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Datensätze zusammenführen in R
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
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
Ah jetzt da ich ich nur diese beiden Tabellen zusammenführe klappt es.
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
Code: Alles auswählen
Attention <-merge(Attention_ASQ, Attention_DCS, by="CASE")
'by' muss eine oder mehrere Spalten als Zahlen, Namen oder logische Werte spezifizieren".
LG,
Ante
Re: Datensätze zusammenführen in R
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
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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Datensätze zusammenführen in R
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")