向数据表中添加更多列,减少.RData对象的大小

时间:2016-03-22 11:52:00

标签: r data.table rdata

我有一个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)。

1 个答案:

答案 0 :(得分:1)

.Rdata help file扩展了MAPK的评论并注意到:

  

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

     

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