假设我在函数中定义了一个对象:
foo <- function(){
bar <- c("list", "of", "object", "values")
}
如何从执行函数时创建的临时运行时环境中检索此对象?
我知道我可以编辑函数,使用<<-
或assign()
将此对象分配给永久的命名环境 - 或者更粗略地,只需从函数体中复制粘贴所需的文本 - 但我正在寻找一种程序化的解决方案,它不需要修改功能。
答案 0 :(得分:0)
要将bar
传递给调用者,通常会将其返回。在示例函数中,它将是:
bar <- foo()
如果bar
是foo
中没有返回的中间结果,请使用trace
:
trace(foo, exit = quote(bar <<- bar))
## [1] "foo"
foo()
## Tracing foo() on exit
untrace(foo)
bar
## [1] "list" "of" "object" "values"