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

问题描述 投票:0回答:1

我有两个数据帧,我想合并。我想用df2替换df1中的现有数据,方法是匹配名称,同时合并一个新行,将数据保留在df1中,而df2中不存在该数据,并合并df2中不存在的新行。示例:

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行的age列已从df2中进行了更新,并保留了D&E,&F&G合并到了数据框中。有什么建议吗?预先谢谢你

r dataframe merge bind
1个回答
0
投票
library(dplyr) 
df1 %>% full_join(df2, by = "name") %>%
  mutate(age = coalesce(age.y, age.x)) %>%
  select(-age.y, -age.x)
© www.soinside.com 2019 - 2024. All rights reserved.