I have two Datasets and want to add Columns from DATA2 to DATA1 by using doppel Key.
Problem: Data1 is having more rows than DATA2.
I want R to copy all values with the right doppel key. Ich habe 2 Datensätze die ich nach Zwei Spalten ergänzend zusammenfügen möchte. Jedoch hat DATA1 mehr Zeilen (mehrfach nennung gleicher Zeilen) als DATA 2.
What i have:
DATA1 DATA2
key1 key 2 ... key1 key2 XXX
A 1 A 1 X
A 1 A 2 Y
A 2 B 1 Z
B 1
B 1
B 1
.
Mein Ziel ist es DATA1 um die Spalten XXX zu ergänzen. Die Werte XXX von DATA 2 sollen in den häufigeren Zeilen von DATA1 kopiert werde bzw. mehrfach genannt werden.
What i need:
DATA 1 DATA2
key1 key 2 WERTE key1 key2 WERTE
A 1 X A 1 X
A 1 X A 2 Y
A 2 Y B 1 Z
B 1 Z
B 1 Z
B 1 Z
Hugh Thank you for any Help or Ideas! : )
Ich dachte an full_join mit dplyr kann es aber nicht richtig umsetzen.
Ich bin leider noch keine R Expertin. Falls jemand von euch eine Idee hat und mir helfen kann wäre ich sehr sehr dankbar.
Viele Liebe Grüße
CodePudding user response:
You can use the left_join
from dplyr
and select multiple columns by
which you want to join. You can use the following code:
DATA1 <- data.frame(key1 = c("A", "A", "A", "B", "B", "B"),
key2 = c(1, 1, 2, 1, 1, 1))
DATA2 <- data.frame(key1 = c("A", "A", "B"),
key2 = c(1, 2, 1),
XXX = c("X", "Y", "Z"))
library(dplyr)
DATA_COMBINED <- left_join(DATA1, DATA2, by = c("key1", "key2"))
DATA_COMBINED
Output:
key1 key2 XXX
1 A 1 X
2 A 1 X
3 A 2 Y
4 B 1 Z
5 B 1 Z
6 B 1 Z