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>
我正在尝试编写一个函数来使用 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>