R:如何将 300 个 1GB .rds 文件合并为 1 个大 rds 文件而不将它们读入内存?

HCA*_*CAI 5 r

我有 300 多个 .rds 文件,每个文件都具有相同的列名,并希望将它们绑定到一个压缩的 .rds 文件中,我可以通过 sftp 传输该文件。

有没有办法在不将它们读入内存的情况下有效地做到这一点?

目前我正在使用以下代码,但这会在写入文件之前最大化内存。任何想法都非常感谢。

library(tidyverse)
library(data.table)

df <- list.files(pattern = ".rds") %>%
         map(readRDS) %>% 
         data.table::rbindlist()

    saveRDS(df,"df.rds")
Run Code Online (Sandbox Code Playgroud)

最终我一一阅读并习惯于read::write_csv("name.csv",append=TRUE)将它们附加到磁盘上。之后我使用 {disk.frame} 或 SQL 数据库来处理数据。