Dplyr 可以在多列或复合键上连接吗?

我知道 dplyr v3.0允许您加入不同的变量:

left_join(x, y, by = c("a" = "b")会匹配 x.ay.b

但是,是否有可能加入一个变量的组合,或者我必须事先添加一个组合键?

大概是这样:

left_join(x, y, by = c("a c" = "b d")匹配[ x.ax.c]与[ y.by.d]的连接

223364 次浏览

更新为使用 tibble ()

可以将长度大于1的命名向量传递给 left_join()by参数:

library(dplyr)


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


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


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