2

我想用saveRDS(). 无论是全局的还是自定义的,我都希望saveRDS()有同样的行为。然而,全球环境似乎是一个特例。

ls()
## [1] "dl"  "gwd" "ld"  "td" # Helpers defined in my .Rprofile
x <- 1
ls()
## [1] "dl"  "gwd" "ld"  "td"  "x"
saveRDS(globalenv(), "global.rds")

现在,当我开始一个新的 R 会话并尝试加载环境时,x它被删除了。使用创建的自定义环境不会发生这种情况new.env(parent = globalenv())

ls(readRDS("global.rds"))
## [1] "dl"  "gwd" "ld"  "td"

我预计这种行为是由于 R 中的环境实际上只是指针的集合。不过,我正在寻找一种globalenv()使用saveRDS(). 我目前正在save.image()为我的应用程序使用,但这是一个笨重的特殊情况,增加了对我的测试工作流程的要求。

编辑

如果有人能详细说明为什么globalenv()没有真正得救,我将不胜感激。我认为这是因为指针,但这并不能解释为什么这种事情确实适用于使用new.env(parent = globalenv()).

4

0 回答 0