Как я могу объединить 2 таблицы с помощью dplyr и сохранить все столбцы из таблицы RHS? - PullRequest
0 голосов
/ 28 марта 2019

Вот 2 кадра данных:

df1 <- data.frame(ID=c(1,2,3,4))
df1
df2 <- data.frame(ID=c(1,3))
df2

Как я могу присоединиться к ним, чтобы получить следующий вывод?:

#  ID.1 ID.2
#     1    1
#     2 
#     3    3
#     4 

Спасибо!

Ответы [ 2 ]

2 голосов
/ 28 марта 2019

Вы можете продублировать столбец идентификатора в df2 до объединения:

library(tidyverse)

df1 <- data.frame(ID=c(1,2,3,4))
df2 <- data.frame(ID=c(1,3)) %>% 
  mutate(ID.2 = ID)

df1 %>% 
  left_join(df2, by = c("ID" = "ID"))

  ID ID.2
1  1    1
2  2   NA
3  3    3
4  4   NA
2 голосов
/ 28 марта 2019

Можно использовать match

data.frame(ID.1 = df1$ID, ID.2 = df2$ID[match(df1$ID, df2$ID)])
#   ID.1 ID.2
#1    1    1
#2    2   NA
#3    3    3
#4    4   NA
...