【问题标题】:Why do objects in RStudio/R which display as 1 GB in size get saved by RData or RDS file formats at much larger sizes, even at no compression?为什么 RStudio/R 中显示为 1 GB 大小的对象会被 RData 或 RDS 文件格式以更大的大小保存,即使没有压缩?
【发布时间】:2018-06-04 09:51:57
【问题描述】:

我目前在RStudio 中有一个列表对象,它在环境列表中显示为1.2 GB。但是,当我使用 saveRDScompress = FALSE 函数保存时,保存的对象大小显示为近 4 GB。

我的列表对象大小的报告是错误的还是发生了其他事情?我认为如果一个对象在 R 中占用了一定的空间,它应该在没有压缩的情况下以相同的大小保存?我知道 Stackoverflow 上有一些与此类似的问题,但似乎没有人能解释为什么即使没有压缩它也会有所不同。

【问题讨论】:

  • str(yourlist, 1) 说什么,即该列表中存储了什么?另外,您确定没有将默认值更改为ascii = TRUE?请显示用于文件导出的命令。
  • 我认为这可能是因为我内部有一个lm 回归对象,它携带来自全球环境的东西。我没有碰ASCII。这可能是为什么?

标签: r


【解决方案1】:

由于需要有效的内存管理,R 中对象大小的计算变得复杂。您的列表可能包含在内存中未考虑的元素,因为它们可能是共享资源,但在导出时需要包含在内。 object.size 的帮助文件指出:

内存分配的具体应归属于哪些部分 哪个对象不明确。这个功能只是提供了一个粗略的 指示:对于原子向量,它应该是相当准确的,但是 例如,不检测列表的元素是否共享。 (考虑了字符向量元素之间的共享, 但不是在单个对象中的字符向量之间。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 2014-08-28
    • 2020-02-14
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    相关资源
    最近更新 更多