从其执行环境中获取嵌套函数的参数

时间:2018-05-23 18:03:32

标签: r

考虑以下示例:

my_function <- function(...){
  x <- 10
  sum(...)
}

my_function(x)

我希望能够执行此类操作,但my_function将从其封闭的环境中搜索x,但它找不到。

我是如何做到这一点的?

1 个答案:

答案 0 :(得分:2)

这有效,但我不确定这是否是“正确”的做法

my_function <- function(...){
  x <- 10
  y <- 5
  inn <- substitute(...)
  sum(eval(inn))
}
x <- 2
y <- 3
my_function(c(x, y))

# [1] 15

根据您实际尝试的目标,您可以通过创建列表并使用with来实现目标,例如

vars <- list(x = 10, y = c(80, 44), z = matrix(runif(100), 10))

with(vars, x + y[2] + z[10, 3])

# [1] 54.32984