R - 在反序列化的环境中评估嵌套函数调用

时间:2013-07-18 20:32:11

标签: r serialization eval environment

我试图通过将全局环境(包含函数和数据)保存到文件中,然后将其加载到新文件中,以沙盒方式运行已存在的 R代码块环境(不是全局环境)并评估该环境中的函数调用。但是,我在调用环境中的其他函数时遇到了麻烦。这是一个例子:

f1 <- function(x) x*2
f2 <- function(y) f1(y) + 1
save(list=ls(), file="env.RData")
rm(list=ls())

jobenv <- new.env(parent=globalenv())
load("env.RData", envir=jobenv)
expr <- quote(f2(3))
eval(expr, envir=jobenv)

失败了:

Error in f2(3) : could not find function "f1"

然后首先附加环境:

> attach(jobenv)
> eval(expr)
[1] 7

除了使用attach之外,有没有办法在反序列化环境中成功评估嵌套函数调用?

(根据评论者的建议,这个问题来自R - Evaluate a nested function in an environment

0 个答案:

没有答案