【发布时间】:2014-12-24 01:22:45
【问题描述】:
我意识到dplyr v3.0 允许您加入不同的变量:
left_join(x, y, by = c("a" = "b") 将匹配 x.a 到 y.b
但是,是否可以加入变量组合,还是必须事先添加复合键?
类似这样的:
left_join(x, y, by = c("a c" = "b d") 匹配 [x.a 和 x.c] 到 [y.b 和 y.d] 的串联
【问题讨论】:
我意识到dplyr v3.0 允许您加入不同的变量:
left_join(x, y, by = c("a" = "b") 将匹配 x.a 到 y.b
但是,是否可以加入变量组合,还是必须事先添加复合键?
类似这样的:
left_join(x, y, by = c("a c" = "b d") 匹配 [x.a 和 x.c] 到 [y.b 和 y.d] 的串联
【问题讨论】:
更新以使用 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"))
【讨论】:
left_join(d1, d2, by = c("firstname" = "firstname", "lastname" = "lastname"))。对某些人来说可能并不明显。
=:left_join(d1, d2, by = c("firstname", "lastname"))