相关疑难解决方法(0)

R - 评估环境中的嵌套函数

我试图通过将所有必要的依赖项(函数和数据)加载到新环境中并在该环境中评估表达式,以沙盒方式运行一大块R代码.但是,我在调用环境中的其他函数时遇到了麻烦.这是一个简单的例子:

jobenv <- new.env(parent=globalenv())
assign("f1", function(x) x*2, envir=jobenv)
assign("f2", function(y) f1(y) + 1, envir=jobenv)
expr <- quote(f2(3))
Run Code Online (Sandbox Code Playgroud)

使用evalon expr失败,因为f2找不到f1

> eval(expr, envir=jobenv)
Error in f2(3) : could not find function "f1"
Run Code Online (Sandbox Code Playgroud)

而明确附加环境是有效的

> attach(jobenv)
> eval(expr)
[1] 7
Run Code Online (Sandbox Code Playgroud)

我可能错过了一些明显的东西,但我找不到任何有效的eval呼叫排列.有没有办法在不附加环境的情况下获得相同的效果?

eval r function

7
推荐指数
2
解决办法
1846
查看次数

标签 统计

eval ×1

function ×1

r ×1