У меня есть два кадра данных:объединить два кадра данных два колонн
df1 <- data.frame(x1=c("a","b","z","u"),
x2=c("f", "a","d","x"))
df2 <- data.frame(x=letters[1:10],y=1:10,z=11:20)
Теперь я хочу, чтобы объединить их x1, x2 и х, т.е. если буква х в любом x1 или x2 соответствующих y и z следует добавить. Если доступны два варианта, x1 следует использовать в качестве ссылки.
df1 должен быть «основным» набором данных (например, all.x = TRUE аргумент).
окончательный кадр данных здесь будет
x1 x2 y z
a f 1 11
b a 2 12
z d 4 14
u x NA NA
Я хотел бы видеть, второе решение, которое добавляет столбцы y1, z1 и y2, z2 так:
x1 x2 y1 z1 y2 z2
a f 1 11 6 16
b a 2 12 1 11
z d NA NA 4 14
u x NA NA NA NA
бы оцените merge
или dplyr
или tidyr
раствор
Для вашего второго решения просто left_joining (см. 'Dplyr :: left_join') на x = x1 сначала, а затем снова на x = x2 выполнит трюк. –