r语言 - 向子函数传递enquo表达式



这个问题与将变量传递给使用' enquo() '的函数有关。

我有一个更高级的函数,它的参数是一个索引(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 function之前没有将变量赋值。

谢谢

这是你想要的吗?

library(tidyverse)
LF <- function(df,var){
newdf <- df %>% select({{var}})
return(newdf)
}
HF <- function(df,var){
LF(df,{{var}})
}
LF(mtcars,disp)  
HF(mtcars,disp)

{{}}(又名'大括号')操作符用enquo()

代替引号的方法

相关内容

  • 没有找到相关文章

最新更新