【发布时间】:2020-10-03 19:51:37
【问题描述】:
文档表明这是可能的:
fn <- function(a = 1, b = 2) rlang::fn_fmls()
fn()
$a
[1] 1
$b
[1] 2
我想在一个函数中包含rlang::fn_fmls(),并为当前范围内的参数返回相同的结构。
预期行为:
x <- function(a, b){
rlang::fn_fmls(fn = rlang::current_fn())
}
x(a = 1, b = 2)
$a
[1] 1
$b
[1] 2
实际行为:
x <- function(a, b){
rlang::fn_fmls(fn = rlang::current_fn())
}
x(a = 1, b = 2)
$a
$b
我尝试过的另一种方法是:
x <- function(a, b){
tmp <- base::match.call() %>%
base::as.list()
tmp %>%
stringr::str_detect('x') %>%
purrr::discard(tmp, .)
}
x(a = 1, b = 2)
$a
[1] 1
$b
[1] 2
rlang 有没有办法获得我想要的结果?
【问题讨论】: