我想将目录中的所有csv文件读入R并将它们绑定在一起。我使用vroom读取文件,并使用map_dfr将阅读器应用于所有文件并将它们绑定在一起。这完美地适用于数百个文件。但是,将其应用于3000个文件时出现以下错误。
mapping error: Too many open files
我的(简化的)管道如下所示:
library(vroom)
library(dplyr)
files <- list.files(path = "some_path", pattern = "*.csv", full.names = TRUE)
data_combined <- files %>%
map_dfr(vroom)
每个文件大约只有100kb,因此内存不成问题。如果有人也遇到此问题或对如何解决有想法,我将非常感谢您的帮助。
PS:使用fread或readr读取文件时,会发生相同的错误。问题显然与purrr的map函数有关。
答案 0 :(得分:-1)
files <- list.files(path = "some_path", pattern = "*.csv", full.names = TRUE)
data_combined <- purrr::map_dfr(files,vroom::vroom)