2013-06-04 68 views
3

我的.Rdata文件的大小为92 MB。与csv相比Rdata文件的大小

但是,原始的csv文件大约是3 GB。我把它与平常一起包括在内read.csv()

这怎么可能?

+0

您能告诉我们原始csv的样子吗? –

+2

二进制与ASCII。假设,你已经验证了你的'.Rdata'文件的内容,并且你的操作系统已经正确地更新了文件大小。 –

+2

另外,.Rdata文件是默认压缩的。 –

回答

4

评论已经暗示了发生了什么。但是,这是如此简单,让我们做一个例子:

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)' –