如何有效地加载 xlsx 文件



>我尝试导入近 30 个 xlsx 文件,每个文件的大小为 60mb+ 使用以下

setwd("filepath")
filelist = list.files(pattern = ".*.xlsx")
datalist = lapply(filelist, function(x) {read_excel(x, sheet = 1)})
for (i in 1:length(datalist)){datalist[[i]]<-cbind(datalist[[i]],filelist[i])} 
Data = do.call("rbind", datalist)

加载这些文件需要很长时间,有没有有效的方法可以在几分钟内加载这些文件?仅供参考,我的系统RAM为8GB,任何帮助将不胜感激。

您可以考虑使用并行计算。这是一个例子:

library(parallel)
library(doParallel)
nb_CPU <- 4
cluster <- parallel::makeCluster(nb_CPU)
doParallel::registerDoParallel(cl = cluster)
setwd("filepath")
filelist <- list.files(pattern = ".*.xlsx")
fn_Par <- function(x)
{
library(readxl)
read_excel(x, sheet = 1)
}
datalist <- parLapply(cl = cluster, X = filelist, fun = fn_Par)
for(i in 1 : length(datalist))
{
datalist[[i]] <- cbind(datalist[[i]], filelist[i])
}
Data <- do.call("rbind", datalist)

最新更新