考虑以下示例:
my_function <- function(...){
x <- 10
sum(...)
}
my_function(x)
我希望能够执行此类操作,但my_function
将从其封闭的环境中搜索x
,但它找不到。
我是如何做到这一点的?
答案 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