R:替换两个数据帧的数据并合并非相互数据

R: Replacing data of two dataframes & merge non-mutual data

我有两个要合并的数据框。我想通过匹配名称同时合并一个新行,将 df1 中的现有数据替换为 df2 中的现有数据,保留 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 合并到数据框中。有没有关于如何做到这一点的建议?提前谢谢你

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