如何在R中保存并加载bigmemory :: big.matrix对象?

时间:2015-09-30 19:09:24

标签: r serialization r-bigmemory

我正在尝试在我的R代码中使用big.matrix对象,但是我无法使用GIT_COMMITTER_DATE="<some date>" git commit -m 'message' 将它们保存到文件中,这就是我通常保存对象的方式:

saveRDS

我认为saveRDS在某种程度上没有意识到big.matrix对象实际上是指向其他内存的指针,实际上只是保存指针。有什么方法可以解决这个问题吗?

(我真的不想使用文件支持的big.matrix对象,因为我实际想要保存的对象是包含一个或多个big.matrix对象的复杂数据结构,所以我需要一个支持文件对于对象中包含的每个big.matrix,然后将对象序列化为不确定数量的文件而不是一个。)

2 个答案:

答案 0 :(得分:0)

但是big.memory个对象位于外部指针后面,因此它们在R 的控制之外。这意味着您想要将它们保存为RDS对象从R 从一开始就注定失败。

您可以将它们转换为普通对象占用大量内存,然后将其写为RDS。否则可以查看filebased.bigmatrix()

答案 1 :(得分:0)

你可以尝试

> saveRDS(describe(x), "bigmem-test.RDS")
> y <- attach.big.matrix(readRDS("bigmem-test.RDS"))

我不确定你打算做什么。以上内容适用于同一个R会话。但是没有文件支持,你结束R会话后内存中的任何东西都会消失,上面的内容将不起作用,因为无论它指向什么都将消失。

相关问题