这是我在使用...
参数并tidyselect
选择变量的包中的函数的简化版本:
# this toy function just selects the ... variables
foo <- function(dat = mtcars, ...){
expr <- rlang::expr(c(...))
cols_to_select <- tidyselect::eval_select(expr, data = dat)
dplyr::select(dat, all_of(cols_to_select))
}
这有效:foo(mtcars, cyl)
但是我的实际函数在参数之前有更多前面的...
参数,所有参数都具有默认值。在我使用这些默认值调用我的函数并将值传递给...
.
这就是我想要的 - 假设dat = mtcars
- 但它不起作用:
foo(... = cyl)
错误:名称不得采用
...
或形式..j
。
我可以修改函数或调用以允许直接指定...
吗?