如何将多个group_by参数传递给dplyr连接函数?

时间:2020-08-24 18:20:55

标签: r function dplyr left-join

我已经尝试过下面的示例在dplyr join函数中传递多个键,但是它不起作用。

data("mtcars")

library(tidyverse)

function_left_join <- function(...) {
  
  mtcars %>% 
    left_join(mtcars, by = names(select(., {{...}})))
  
}

head(function_left_join(mpg, cyl))

1 个答案:

答案 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
相关问题