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

向数据表中添加更多列以减小.RData对象的大小,r,data.table,rdata,R,Data.table,Rdata,我有一个data.table,硬盘上保存了3000万行15列(大小177MB,文件1) 我将此数据加载到R中,对其进行处理,然后再向其中添加8列(行保持不变),并将其再次保存为.RData文件,但这次它的大小减小了(144 MB,文件2) 这怎么可能?如果我添加了更多列,.RData文件的大小不应该增加吗 EDIT:初始文件是data.table(在R中),我将其作为.RData存储在硬盘上(文件1177 MB)。然后,我将其加载回R中,对其进行处理,添加更多列(行保持不变)并将其保存回(文件2

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

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

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

EDIT:初始文件是data.table(在R中),我将其作为.RData存储在硬盘上(文件1177 MB)。然后,我将其加载回R中,对其进行处理,添加更多列(行保持不变)并将其保存回(文件2144MB)。

根据MAPK的注释展开,并注意到:

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

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


.RData是占用较少存储空间的压缩文件。因此,存储R对象更有用。原始数据的格式是什么?它是文本文件(如CSV)还是
.RData
文件?另外,你能发布一个可复制的例子吗(例如,模拟数据,写入数据,读回数据,然后再次保存)?我很困惑-这是如何回答OP的?也就是说,这如何解释OP的大小越小,列越多?我很确定OP的文本和标题都清楚地表明起始点和结束点都是一个.RData文件