我已经尝试过下面的示例在dplyr join函数中传递多个键,但是它不起作用。
data("mtcars")
library(tidyverse)
function_left_join <- function(...) {
mtcars %>%
left_join(mtcars, by = names(select(., {{...}})))
}
head(function_left_join(mpg, cyl))
答案 0 :(得分:0)
对于您而言,不必“拥抱” ...
:
library(dplyr)
function_left_join <- function(...) {
mtcars %>% left_join(mtcars, by = names(select(., ...)))
}
head(function_left_join(mpg, cyl))
#> mpg cyl disp.x hp.x drat.x wt.x qsec.x vs.x am.x gear.x carb.x disp.y hp.y
#> 1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 160.0 110
#> 2 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 160.0 110
#> 3 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 160.0 110
#> 4 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 160.0 110
#> 5 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 108.0 93
#> 6 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 140.8 95
#> drat.y wt.y qsec.y vs.y am.y gear.y carb.y
#> 1 3.90 2.620 16.46 0 1 4 4
#> 2 3.90 2.875 17.02 0 1 4 4
#> 3 3.90 2.620 16.46 0 1 4 4
#> 4 3.90 2.875 17.02 0 1 4 4
#> 5 3.85 2.320 18.61 1 1 4 1
#> 6 3.92 3.150 22.90 1 0 4 2