首页 > 解决方案 > 合并具有不同列的数据框

问题描述

我有2个数据框:

df1 = data.frame(Bird_ID = c(1:6), Sex = c("Male","Female","Male","Male","Male","UNK"), Age.years =c("2","4","8","2","12","1"))

df2 = data.frame(Bird_ID = c(7), Sex = c("Female"), date.fledged= c("19/10/2021"))

df1
# Bird_ID Sex Age.years
# 1 Male 2
# 2 Female 4
# 3 Male 8
# 4 Male 2
# 5 Male 12
# 6 UNK 1
       
df2
# Bird_ID Sex Date.fledged
# 7 Female 19/10/2021
dfmerged = data.frame(Bird_ID = c(1:7), Sex = c("Male","Female","Male","Male","Male","UNK","Female"), Age.years =c("2","4","8","2","12","1",NA))`

dfmerged
# Bird_ID Sex Age.years
# 1 Male 2
# 2 Female 4
# 3 Male 8
# 4 Male 2
# 5 Male 12
# 6 UNK 1
# 7 Female NA

如何df1使用来自主数据库中的信息df2并仅保留(和所有)列来更新鸟类数据库df1?例如,这里dfmerged只保留来自的列df1,删除“Date.fledged”列,df2并且鸟 7 的 NA 为“Age.years”,因为数据丢失(这是想要的输出)。

标签: rdataframemerge

解决方案


你可以使用

library(dplyr)

df1 %>% 
  bind_rows(df2) %>% 
  select(names(df1))

这返回

  Bird_ID    Sex Age.years
1       1   Male         2
2       2 Female         4
3       3   Male         8
4       4   Male         2
5       5   Male        12
6       6    UNK         1
7       7 Female      <NA>

推荐阅读