【问题标题】:How to pass multiple group_by arguments to a dplyr join function?如何将多个 group_by 参数传递给 dplyr 连接函数?
【发布时间】:2020-08-24 18:20:55
【问题描述】:

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

data("mtcars")

library(tidyverse)

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

head(function_left_join(mpg, cyl))

【问题讨论】:

    标签: r function dplyr left-join


    【解决方案1】:

    在您的情况下,不必“拥抱”...

    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
    

    【讨论】:

      猜你喜欢
      • 2018-09-08
      • 2018-05-15
      • 2015-03-14
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 2021-01-19
      • 2018-01-08
      相关资源
      最近更新 更多