あなたのデータに非常に特殊な構造がない限り、saveRDS()
よりはるかに優れているとは思いません。代替の圧縮オプションの1つを使用することでわずか10%の利点が得られます。私はgzip
ではなくxz
圧縮を使用して12.7Mから10.5Mになります(私の例ではCSVは43Mです)。
の設定例:
set.seed(101)
m <- matrix(runif(5e4*50),ncol=50)
(これは行列ではなく、データフレームです。私はそれが大きな違いを行いますが、あなたは試すことができ疑う)
書き込みCSVファイル:
write.csv(m,file="tmp.csv")
s_csv <- file.info("tmp.csv")["size"]
圧縮オプションを試してみてください:
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"])
})
結合してMBに変換:
unlist(c(csv=s_csv,ss))/2^20
## csv.size gzip.size bzip2.size xz.size
## 43.28464 12.69796 11.32605 10.46269