R Tidymodels:使用函数参数指定列时不存在错误列

R Tidymodels: error columns don't exist when using function argument to specify column

我正在尝试编写一个函数来使用 R tidymodels 函数 initial_split 并带有一个参数,该参数可以让我在每次调用该函数时将层更改为不同的变量。

像这样定期使用 initial_split 非常有效:

split_glab=initial_split(data,prop=0.7,strata=sp_glabrata)

然后我将它转换为函数并插入我的物种参数:

split_data=function(df,species){
  initial_split(df,prop=0.7,strata=species)
}

split_data(data,species=sp_glabrata)

并得到以下错误:

Error: Can't subset columns that don't exist.
x Column `species` doesn't exist.

当然,我的数据中不存在该列,因为它只是我函数中的一个参数——我试图引用的列名为 sp_glabrata。我不知道如何让我的函数引用列而不是参数。我不想只键入列名,因为我必须对多个列应用许多类似的函数,这会花很长时间。

任何指导将不胜感激!

因为它是一个整洁的包,可以使用 curly-curly 运算符 ({{}}) 将未引用的参数计算为列名

library(tidymodels)
split_data <- function(df, species){
  initial_split(df, prop=0.7, strata={{species}})
  }

-测试

split_data(iris, species = Species)
#<Analysis/Assess/Total>
#<105/45/150>