gpt4 book ai didi

r - 如何在 R 中的多个可选键上加入 2 个数据帧,即(key1 或 Key2)其中一个或两个匹配

转载 作者:行者123 更新时间:2023-12-04 09:32:51 25 4
gpt4 key购买 nike

有 2 个数据帧,需要加入多个可选键,即如果 t1.col1=t2.col1 或 t1.col3=t2.cold3

library(dplyr)

d1 <- data_frame(
x = letters[1:3],
y = LETTERS[2:4],
a = rnorm(3)
)

d2 <- data_frame(
x2 = letters[5:3],
y2 = LETTERS[3:1],
b = rnorm(3)
)

left_join(d1, d2, by = c("x" = "x2", "y" = "y2"))

#OUTPUT d1

x y a
<chr> <chr> <dbl>
1 a B 1.349394
2 b C -1.364727
3 c D 1.697234

#OUTPUT d2
x2 y2 b
<chr> <chr> <dbl>
1 e C 0.6587823
2 d B -1.2001558
3 c A 0.6175364

#OUTPUT joinresult : All NA in the B field

x y a b
<chr> <chr> <dbl> <dbl>
1 a B 1.349394 NA
2 b C -1.364727 NA
3 c D 1.697234 NA

#EXPECTATION : d1:x =d2:x2 for value "c" and d1:y=d2:y2 for value "B" & "C"
hence all B matching values should populated in JOIN

上面的示例连接数据框,当两个键匹配时,我需要在其中一个或两个键匹配时加入。

如有任何帮助,我们将不胜感激。

最佳答案

你的措辞让我觉得你知道 SQL,所以最简单的答案可能是使用 sqldf,它可以让你对数据帧进行 SQL 连接,就好像它们是表一样:

library(sqldf)
sqldf('select x,y,a,b from d1 join d2 on d1.x = d2.x2 or d1.y = d2.y2')

x y a b
1 a B -0.62688156 -0.6449346
2 b C 0.04378374 -0.3865766
3 c D -0.23755237 -1.6633351

关于r - 如何在 R 中的多个可选键上加入 2 个数据帧,即(key1 或 Key2)其中一个或两个匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48815077/

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