在调试一些 R 代码时,我想将工作区(即所有当前对象)保存在某个特定框架中,以便我可以利用这些对象 调试浏览器之外 .遵循 this answer 中给出的示例:
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 文档中重现某些错误。如果有人对该特定应用程序有想法,我们将不胜感激。
最佳答案
save(list=ls(), file="mylocals.Rda")
我必须克服的障碍是
save
中该参数的名称。 .为什么作者在参数名称“列表”是字符向量(而不是列表)时使用它?同样的提示适用于 rm
函数参数名称。
关于r - 保存工作区(在特定框架中)以在 R 中进行事后调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18023252/