R - Hinzufügen einer neuen Spalte zu einem dataframe mit passenden Werten eines anderen dataframe
Ich versuche zu füllen, die in Tabelle 1 mit passenden Wert2 Werte von Tabelle2
table1$New_val2 = table2[table2$pid==table1$pid,]$val2
Aber ich bekomme die Warnung
longer object length is not a multiple of shorter object length
das ist fair genug, da die Tabelle die Längen sind nicht das gleiche.
Richten Sie bitte mich auf dem richtigen Weg, dies zu tun.
merge(table1, table2, by="pid")
Optional fügen Sie in derall.x=TRUE
argument, wenn gewünscht.- hi cory, was ist, wenn es weitere Spalten in Tabelle2 aber ich möchte nur hinzufügen, col2?
merge(table1, table2[, c("pid", "col2")], by="pid")
- danke cory, mit dem merge-Befehl gearbeitet. Ich möchte es akzeptieren, wenn die Antwort postest du es.
Du musst angemeldet sein, um einen Kommentar abzugeben.
merge(table1, table2[, c("pid", "col2")], by="pid")
Fügen Sie in der
all.x=TRUE
argument, um zu halten alle pids in Tabelle1, die nicht übereinstimmungen in Tabelle2.Du auf dem richtigen Weg waren. Hier ist ein Weg, mit match...
table1$val2 <- table2$val2[match(table1$pid, table2$pid)]
Ich bin nicht sicher, ob du das meinst aber man kann mit:
Dadurch wird eine neue Tabelle namens neue_tabelle, mit 3 Spalten und diese Werte abgestimmt durch die id, in diesem Fall "pid".
Ich bin so spät hier, aber falls jemand anderes fragt die gleiche Frage:
Das ist genau das, was dplyr ' s inner_merge tut.
Den Befehl gibt an, welche Spalte verwendet werden soll, entsprechen die Zeilen.