gpt4 book ai didi

R将大数据帧压缩保存到硬盘

转载 作者:行者123 更新时间:2023-12-02 03:54:12 25 4
gpt4 key购买 nike

我需要将 R 中的一些大型 dataframes 保存到硬盘。由于每个 DF 的维度都非常大(~>50K 行和 >50 列)并且我有超过 200K 个,我想压缩保存它们以节省一些硬盘空间.

到目前为止,我尝试了几种类型,例如 .CSVrds (compress = "gzip"),这需要 ~分别为 60MB20MB。我想知道是否有其他方法可以更有效地压缩它们。

最佳答案

我不认为你能比 saveRDS() 做得更好,除非你的数据有一些非常特殊的结构。通过使用其中一种替代压缩选项,您可以获得轻微 (~10%) 的优势;下面,我使用 xz 压缩而不是 gzip 从 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

关于R将大数据帧压缩保存到硬盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44477709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com