如何从运行时环境中检索对象?

时间:2015-11-14 04:51:33

标签: r runtime environment

假设我在函数中定义了一个对象:

foo <- function(){
  bar <- c("list", "of", "object", "values")
}

如何从执行函数时创建的临时运行时环境中检索此对象?

我知道我可以编辑函数,使用<<-assign()将此对象分配给永久的命名环境 - 或者更粗略地,只需从函数体中复制粘贴所需的文本 - 但我正在寻找一种程序化的解决方案,它不需要修改功能。

1 个答案:

答案 0 :(得分:0)

要将bar传递给调用者,通常会将其返回。在示例函数中,它将是:

bar <- foo()

如果barfoo中没有返回的中间结果,请使用trace

trace(foo, exit = quote(bar <<- bar))
## [1] "foo"

foo()
## Tracing foo() on exit 

untrace(foo)

bar
## [1] "list"   "of"     "object" "values"