R压缩地将大数据帧保存到硬盘驱动器

R压缩地将大数据帧保存到硬盘驱动器,r,csv,compression,gzip,R,Csv,Compression,Gzip,我需要将R中的一些大数据帧保存到硬盘上。由于每个DF的尺寸相当大~>50K行和>50列,并且我有超过200K的DF,因此我想压缩保存它们以节省一些硬盘空间 到目前为止,我尝试了两种类型,如.CSV、rds compress=gzip,它们分别需要约60MB和20MB。我想知道是否有其他方法可以更有效地压缩它们 除非您的数据具有某种非常特殊的结构,否则我认为您不能比saveRDS做得更好。您可以通过使用一种替代压缩选项获得约10%的优势;下面,我使用xz压缩而不是gzip从12.7M压缩到10.5

我需要将R中的一些大数据帧保存到硬盘上。由于每个DF的尺寸相当大~>50K行和>50列,并且我有超过200K的DF,因此我想压缩保存它们以节省一些硬盘空间


到目前为止,我尝试了两种类型,如.CSV、rds compress=gzip,它们分别需要约60MB和20MB。我想知道是否有其他方法可以更有效地压缩它们

除非您的数据具有某种非常特殊的结构,否则我认为您不能比saveRDS做得更好。您可以通过使用一种替代压缩选项获得约10%的优势;下面,我使用xz压缩而不是gzip从12.7M压缩到10.5M。在我的示例中,CSV是43M

树立榜样:

set.seed(101)
m <- matrix(runif(5e4*50),ncol=50)

我不认为你能比saveRDS做得更好,除非你的数据有一些非常特殊的结构。您可以通过使用一种替代压缩选项获得约10%的优势;下面,我使用xz压缩而不是gzip从12.7M压缩到10.5M。在我的示例中,CSV是43M

树立榜样:

set.seed(101)
m <- matrix(runif(5e4*50),ncol=50)
c_opts <- c("gzip","bzip2","xz")
ss <- sapply(c_opts,
        function(c) {
          saveRDS(m,compress=c,file="tmp.rds")    
          return(file.info("tmp.rds")["size"])
})
unlist(c(csv=s_csv,ss))/2^20
##  csv.size  gzip.size bzip2.size    xz.size 
##   43.28464   12.69796   11.32605   10.46269