【问题标题】:R: Replacing data of two dataframes & merge non-mutual dataR:替换两个数据框的数据并合并非相互数据
【发布时间】:2020-03-04 15:37:16
【问题描述】:

我有两个想要合并的数据框。我想用 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 合并到数据框中。关于如何做到这一点有什么建议吗?提前谢谢你

【问题讨论】:

    标签: r dataframe merge bind


    【解决方案1】:
    library(dplyr) 
    df1 %>% full_join(df2, by = "name") %>%
      mutate(age = coalesce(age.y, age.x)) %>%
      select(-age.y, -age.x)
    

    【讨论】:

      猜你喜欢
      • 2016-03-01
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 2021-11-11
      • 2022-01-09
      相关资源
      最近更新 更多