【问题标题】:Size of Rdata file compared to csvRdata 文件的大小与 csv 相比
【发布时间】:2013-05-30 23:15:30
【问题描述】:

我的 .Rdata 文件大小为 92 MB。

但是,原始 csv 文件大约为 3 GB。我将它包含在通常的read.csv()

怎么可能?

【问题讨论】:

  • 你能告诉我们原始的 csv 是什么样的吗?
  • 二进制与 ASCII。也就是说,假设您已经验证了 .Rdata 文件的内容并且您的操作系统已正确更新文件大小。
  • 另外,.Rdata 文件默认是压缩的。
  • 12417576 行 14 列、3 个日期、邮政编码和几列,其中包含一些因素。听起来非常可压缩,但仍然令人印象深刻。

标签: r csv rdata


【解决方案1】:

cmets 已经暗示了正在发生的事情。但这太简单了,让我们举个例子:

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 更加“昂贵”之前......

【讨论】:

  • 使用rep(TRUE,1e5) 变得更好
猜你喜欢
  • 1970-01-01
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
  • 2014-09-22
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多