在调试一些 R 代码时,我想将工作区(即所有存在的对象)保存在某个特定的框架中,以便我可以在调试浏览器之外使用这些对象。按照此答案中给出的示例:
x <- 1:5
y <- x + rnorm(length(x),0,1)
f <- function(x,y) {
y <- c(y,1)
lm(y~x)
}
设置options(error = recover)
和运行f(x,y)
允许我们选择进入哪个帧。在这里,我将选择2
并检查我的工作区,ls()
如下所示:
Browse[1]> ls()
[1] "cl" "contrasts" "data" "formula" "m" "method" "mf" "model" "na.action" "offset" "qr"
[12] "ret.x" "ret.y" "singular.ok" "subset" "weights" "x" "y"
我希望能够保存所有这些对象以供以后使用。在浏览器中使用save.image()
,或将其插入相关函数中,保存f(x,y)
最初调用的环境。我可以使用dump.frames()
和调用debugger()
生成的dump.frames
分类对象,但我仍然必须在调试浏览器中以交互方式工作。我真正想要的是一个.RData
包含上面列出的 18 个对象的文件。
这一切的重点是在 R Markdown 文档中重现某些错误。如果有人对该特定应用程序有想法,将不胜感激。