首页 > 解决方案 > R:替换两个数据框的数据并合并非相互数据

问题描述

我有两个希望合并的数据框。我想用 df2 替换 df1 中的现有数据,同时匹配名称并组合一个新行,在 df1 中保留 df2 中不存在的数据,以及从 df2 中合并 df1 中不存在的新行。例子:

df1:

name       age
A          15
B          15
C          16
D          17
E          18

df2:

name       age       height
A          15        159
B          15        156
C          20        160
F          21        171
G          22        163

期望的结果:

name       age       height
A          15        159
B          15        156
C          20        160 
D          17        NA
E          18        NA
F          21        171
G          22        163

看到除了合并新列之外,df1 中的行 C 具有从 df2 更新的年龄列,并保持 D & E,& F & G 合并到数据框中。关于如何做到这一点有什么建议吗?先感谢您

标签: rdataframemergebind

解决方案


library(dplyr) 
df1 %>% full_join(df2, by = "name") %>%
  mutate(age = coalesce(age.y, age.x)) %>%
  select(-age.y, -age.x)

推荐阅读