【发布时间】:2021-11-21 06:47:30
【问题描述】:
这个问题与Passing variables to functions that use `enquo()`有关。
我有一个更高的函数,其中包含 tibble (dat) 和 dat 中感兴趣的列 (variables_of_interest_in_dat) 的参数。在该函数中,有一个对另一个函数的调用,我想将 variables_of_interest_in_dat 传递给该函数。
higher_function <- function(dat, variables_of_interest_in_dat){
variables_of_interest_in_dat <- enquos(variables_of_interest_in_dat)
lower_function(dat, ???variables_of_interest_in_dat???)
}
lower_function <- function(dat, variables_of_interest_in_dat){
variables_of_interest_in_dat <- enquos(variables_of_interest_in_dat)
dat %>%
select(!!!variables_of_interest_in_dat)
}
将variables_of_interest_in_dat 传递给lower_function 的推荐方式是什么?
我尝试过lower_function(dat, !!!variables_of_interest_in_dat),但是当我运行higher_function(mtcars, cyl) 时,这会返回“错误:无法在顶层使用!!!。”
在相关帖子中,higher_function 在将变量传递给lower 函数之前没有对变量进行enquo。
谢谢
【问题讨论】:
标签: r tidyeval quasiquotes