【问题标题】:adding more columns to a data table decreasing the size of the .RData object向数据表添加更多列以减小 .RData 对象的大小
【发布时间】:2016-07-09 07:08:55
【问题描述】:

我有一个data.table,在硬盘上保存了 3000 万行和 15 列(大小 177 MB,文件 1)。

我在 R 中加载此数据,对其进行处理,然后再添加 8 列(行保持不变)并再次将其另存为 .RData 文件,但这次它的大小已减小(144 MB,文件 2) .

这怎么可能?如果我添加了更多列,.RData 文件的大小不应该增加吗?

编辑:初始文件是 data.table(在 R 中),我将它作为 .RData 存储在硬盘上(文件 1,177 MB)。然后我将它重新加载到 R 中,对其进行处理,添加更多列(行保持不变)并将其保存回来(文件 2,144 MB)。

【问题讨论】:

  • .RData 是占用较少存储空间的压缩文件。因此存储 R 对象更有用。
  • 原始数据的格式是什么?它是文本文件(例如 CSV)还是 .RData 文件?另外,您能否发布一个可重现的示例(例如,模拟数据、写入数据、读回数据,然后再次保存)?

标签: r data.table rdata


【解决方案1】:

.Rdata help file 扩展了 MAPK 的评论并指出:

通过压缩可以显着减小大文件的大小。一个特定的 46MB R 对象在 2 秒内被保存为 35MB 未压缩,22MB 使用 gzip 压缩在 8 秒内保存,19MB 使用 bzip2 压缩在 13 秒内保存,9.4MB 使用 xz 压缩在 40 秒内保存。加载时间分别为 1.3、2.8、5.5 和 5.7 秒。这些结果是指示性的,但相对性能确实取决于实际文件:xz 在这里压缩得非常好。

以后可以压缩(使用 gzip、bzip2 或 xz)使用 compress = FALSE 保存的文件:效果与使用压缩保存相同。此外,保存的文件可以在不同的压缩方案下解压缩和重新压缩(请参阅 resaveRdaFiles 以了解在 R 中执行此操作的方法)。

【讨论】:

  • 我很困惑 - 这如何回答 OP? IE。这如何解释 OP 获得更小的尺寸和更多的列?
  • 我很确定 OP 的文本和标题都清楚地表明起点和终点都是 .RData 文件
猜你喜欢
  • 1970-01-01
  • 2014-04-28
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 2010-11-06
  • 2023-04-10
相关资源
最近更新 更多