web-dev-qa-db-ja.com

dplyrは複数の列または複合キーで結合できますか?

dplyr v3.0を使用すると、さまざまな変数を結合できることがわかります。

left_join(x, y, by = c("a" = "b")x.ay.bに一致させます

ただし、変数の組み合わせで結合することは可能ですか、または事前に複合キーを追加する必要がありますか?

このようなもの:

[x.ax.c]の連結を[y.by.d]に連結するleft_join(x, y, by = c("a c" = "b d")

86
JasonAizkalns

長さ1を超える名前付きベクトルをleft_join()by引数に渡すことができます。

library(dplyr)

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

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

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