首页 文章

dplyr可以连接多个列或复合键吗?

提问于
浏览
76

我意识到 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 ]的串联

1 回答

  • 131

    您可以将长度大于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"))
    

相关问题