gpt4 book ai didi

R仅在多列重叠的地方合并数据帧

转载 作者:行者123 更新时间:2023-12-04 10:02:35 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to join (merge) data frames (inner, outer, left, right)

(13 个回答)


去年关闭。




我有 2 个大数据框(+-300k 行)。数据框 A 包含有关基因的信息。如果某些值重叠,我想从数据帧 B 向该数据帧添加信息。如果 df.B 中存在一行,其中 df.B$X1 = df.A$X1 & df.B$X2 = df.A$X2,那么我希望将 df.B$X3 的值添加到新的df.A (df.A$X3) 中的列,特别是在右行。基本上我想根据列 X1 和 X2 合并 df.A 和 df.B。我从 for 循环开始,但必须有更简单的方法......希望我能很好地解释我的问题。

谢谢!

> df.A
X1 X2
1 1 1
2 1 2
3 1 3
4 2 1
5 2 2
6 2 3

> df.B
X1 X2 X3
1 1 1 0.5
2 1 8 0.3
3 1 9 0.2
4 2 2 0.4
5 2 9 0.3
6 2 10 0.2

期望的结果:
> df.A
X1 X2 X3
1 1 1 0.5
2 1 2 NA
3 1 3 NA
4 2 1 NA
5 2 2 0.4
6 2 3 NA

最佳答案

你想要一个左连接

dplyr

library(dplyr)
df.A %>% left_join(df.B, by = c("X1","X2"))

数据表

library(data.table)
merge(setDT(df.A), setDT(df.B), all.x = TRUE, by = c("X1","X2"))

关于R仅在多列重叠的地方合并数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61755200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com