我正在尝试编写一个执行left_join的函数(glue_sth),但是您可以指定要加入的变量,如下所示:
df <- tibble(x = letters[1:10])
df_aux <- tibble(z = letters[1:10], y = 1:10)
glue_sth <- function(df, variable) {
df %>%
left_join(df_aux, by = c(variable = "z"))
}
在这种情况下,变量应为x,但我无法使其正常工作。
答案 0 :(得分:3)
找到以下功能:
glue_sth <- function(df, variable) {
df %>%
dplyr::rename('join'=variable) %>%
dplyr::left_join(df_aux, by = c('join' = "z"))
}
在这里,我实质上已经重命名了该列,以便我们不必遍历整个eval(parse())
路线。
注释中所述的替代方法:
glue_sth <- function(df, variable) {
df %>%
dplyr::left_join(df_aux, by = setNames("z",variable))
}
让我知道它是否有效。