这是我第一个论坛问题...我正在try 合并两个数据集,如下所示:

df1 <- data.frame(ID = letters[1:5],
                  x = 5:9,
                  y = c(NA,6,5,NA,NA))

> df1
  ID x  y
1  a 5 NA
2  b 6  6
3  c 7  5
4  d 8 NA
5  e 9 NA


df2 <- data.frame(ID = letters[4:8],
                  y = 7:11,
                  z = c(4,3,NA,2,1))

> df2
  ID  y  z
1  d  7  4
2  e  8  3
3  f  9 NA
4  g 10  2
5  h 11  1

结果应该是这样的:

> df3
  ID  x  y  z
1  a  5 NA NA
2  b  6  6 NA
3  c  7  5 NA
4  d  8  7  4
5  e  9  8  3
6  f NA  9 NA
7  g NA 10  2
8  h NA 11  1

我在各种论坛上四处寻找,但找不到这个具体问题的解决方案:/

任何建议都将不胜感激!

推荐答案

我们可以使用{powerjoin}:

library(powerjoin)

power_full_join(df1, df2, by = "ID", conflict = coalesce_xy)
#>   ID  x  z  y
#> 1  a  5 NA NA
#> 2  b  6 NA  6
#> 3  c  7 NA  5
#> 4  d  8  4  7
#> 5  e  9  3  8
#> 6  f NA NA  9
#> 7  g NA  2 10
#> 8  h NA  1 11

reprex package(v2.0.1)于2022年4月14日创建

R相关问答推荐

如何按行和列组合多个格式?

通过R访问MoveApps API

如何将log 2刻度上的数字转换为自然log

如何在ggplot 2 geom_segment图表中将UTC转换为EET?

高质量地将R格式的图表从Word中输出

根据shiny 应用程序中的数字输入更改图标 colored颜色

根据列表中项目的名称多次合并数据框和列表

使用R中相同值创建分组观测指标

gt()从gt为相同内容的单元格 colored颜色 不同?

未识别时区

如何在R中描绘#符号?

从一个列表的框架中移除列表包装器

使用rest从header(h2,h3,table)提取分层信息

R:从geom_ol()中删除轮廓并导出为pdf

根据类别合并(汇总)某些行

如何删除仅在数据集顶部和底部包含零的行

基于R中的间隔扩展数据集行

R中有约束的优化问题:如何用复数和对数效益函数解决问题?

为什么我对圆周率图的蒙特卡罗估计是空的?

重写时间间隔模糊连接以减少内存消耗