与CSV相比,Rdata文件的大小如何?

7
我的.Rdata文件大小为92 MB。 然而,原始的csv文件大约有3 GB。我使用通常的read.csv()包含它。 这是怎么回事呢?

你能告诉我们原始的CSV文件长什么样吗? - Matthew Plourde
3
二进制 vs. ASCII。假设您已经验证了.Rdata文件的内容,并且您的操作系统已正确更新了文件大小。 - Carl Witthoft
3
另外,.Rdata文件默认是压缩的。 - Hong Ooi
12417576行14列,3个日期,邮政编码和少量带有一些因素的列。听起来非常可压缩,但仍然令人印象深刻。 - Rico
1个回答

7

评论已经暗示了正在发生的事情。但这很直接,让我们举个例子:

R> X <- 1:1e5   # data, no repeats
R> save(X, file="/tmp/foo.RData")
R> write.csv(X, file="/tmp/foo.csv")
R> system("ls -l /tmp/foo*")
-rw-r--r-- 1 x y 1377797 Jun  4 09:11 /tmp/foo.csv
-rw-r--r-- 1 x y  212397 Jun  4 09:11 /tmp/foo.RData

现在有重复数据:

R> X <- rep(1,1e5)   # data, lots of repeats
R> write.csv(X, file="/tmp/bar.csv")
R> save(X, file="/tmp/bar.RData")
R> system("ls -lh /tmp/bar*")
-rw-r--r-- 1 x y 966K Jun  4 09:12 /tmp/bar.csv
-rw-r--r-- 1 x y 1.3K Jun  4 09:12 /tmp/bar.RData
R> 

根据压缩效果的好坏,我们得到6.5到743的比率。在强制打印几个小数位之前,这并不算是我们让csv文件变得更加“昂贵”的因素。


1
rep(TRUE,1e5) 甚至变得更好。 - Simon O'Hanlon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接