首页 > 解决方案 > 如何在我想用来进行连接的 R 函数中传递参数

问题描述

在使用 tidyverse 语法编写的 R 函数中,我想将要用于连接的变量的名称(不带“”)作为参数传递。

我的例子如下: 非常感谢提前!

table1 <- data.frame(
  name = c("a","b","c"),
  especes = c("setosa","versicolor","virginica")
)

mafonc <- function(var=NULL) {

  resultat <- iris %>% left_join(table1,
                                 by =  c("Species"=var))
  
  return(resultat)
}

mafonc(var=especes)

标签: rfunctiondplyrtidyverse

解决方案


尝试这个。您需要使用enquo()and as_label()

library(tidyverse)
#Code
table1 <- data.frame(
  name = c("a","b","c"),
  especes = c("setosa","versicolor","virginica")
)

mafonc <- function(var=NULL) {
  
  var <- enquo(var)
  resultat <- iris %>% left_join(table1,
                                 by =  c("Species"=as_label(var)))
  
  return(resultat)
}

mafonc(var=especes)

推荐阅读