我有两个数据帧df_1
和df_2
(参见下面的dput()
),我希望使用LEFT_JOIN基于多个列进行连接.但是,如果至少有一列匹配(如果不是更多),我希望执行成功的联接.
我目前正在使用代码
join <- left_join(df_1, df_2, by = join_by(Txt_y == Txt_x, Head == Tail), keep = TRUE, na_matches = "never", multiple = "warning", unmatched = "drop")
如果至少有一列有匹配,我如何调整join_by()
才能获得匹配?
以下是这两个数据帧的dput()
:
structure(list(Name_y = c("etwbv", "werg", "sdfg", "qwreg", "gvr",
"wref"), URL_y = c("ewrg", "werg", "asd", "qwe", "gvre", "vrw"
), Txt_y = c("abc", "bfh", "fse", "rege", "wer", "vwr"), Head = c("abc1",
"bfh", "fse", "rege1", "wer", "vwr")), class = "data.frame", row.names = c(NA,
-6L))
structure(list(Name_x = c("etwbv", "werg", "sdfg", "qwreg", "gvr",
"wref"), URL_x = c("ewrg", "werg", "asd", "qwe", "gvre", "vrw"
), Txt_x = c("abc", "rfwcq", "fse", "wefc", "aefc", "vwr"), Tail = c("abc1",
"bfh", "fse", "wreg", "ecdw", "vwr")), class = "data.frame", row.names = c(NA,
-6L))
这就是我想要的输出:
Name_y URL_y Txt_y Head Name_x URL_x Txt_x Tail
etwbv ewrg abc abc1 etwbv ewrg abc abc1
werg werg bfh bfh werg werg rfwcq bfh
sdfg asd fse fse sdfg asd fse fse
qwreg qwe rege rege1 NA NA NA NA
gvr gvre wer wer NA NA NA NA
wref vrw vwr vwr wref vrw vwr vwr
使用上面的代码,我当前获得了df_2
的第二行的Nas,但是由于列Head
和Tail
之间至少有一个匹配,所以我希望将该匹配放入新的数据帧join
中.我如何调整我的代码来实现这一点?