保存和加载压缩的R对象

3
save(something, file="something.RData", compress="xz")

然后当我加载以便重新使用时
load("something.RData")

print(something)

Error in print(something) : object 'something' not found

这是一个随机森林对象。 我是否遗漏了解压缩代码?


如果您尝试使用load("something.RData", verbose = TRUE)进行加载会发生什么? - Dason
1个回答

4
这在控制台中可行(因为没有父环境),但在函数中不行,因为load()使用环境的方式(并将分配给调用函数)。
两个简单的替代方法:
  1. 对于单个对象,请使用saveRDS()readRDS()

  2. 创建一个环境并按下面所示使用它。

这是第二种方法的简短示例:
ne <- new.env()
load(somefile, ne)   # now ls(ne) will show what was loaded
foo <- ne$something

我可能误解了你的回答,这对我来说似乎很好用?Hansi@Hansi:〜$ echo "something <- 1:5;save(something,file="something.RData",compress="xz");rm(something);load("something.RData");print(something)" > script.r hansi@Hansi:〜$ Rscript "script.r" > out hansi@Hansi:〜$ cat out [1] 1 2 3 4 5 但我倾向于使用环境方法或get(load("blah.RData"))。 - Hansi
哎呀,应该在说“脚本”的地方说“函数”。感谢您指出这个问题,现已更正。 - Dirk Eddelbuettel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接