如何将 fread 输出保存在 R 中的向量中

How to save fread outputs in the vector in R

我需要将 f 个数据集保存到向量 allf 中。这是我的工作代码。

  allf <- vector(mode = "list", length = 100)
  for(i in 1:100)
  {   
    f = data.table::fread(paste0(dirPath, i, ".csv"))
    allf[[i]] <- f
  }

现在我想制作这段代码的并行版本:

  allf <- vector(mode = "list", length = 100)
  allf <- foreach(i=1:100, .combine=rbind)
  {   
    f = data.table::fread(paste0(dirPath, i, ".csv"))
    f
  }

问题是所有 f 元素都是按顺序保存的,因此我无法使用 allf[[i]].

访问每个 f

如何解决这个问题?

这是 snow 包,我能够看到常规负载的收益,尽管我们应该按照@joran 在评论中的期望:

library(snow)
cl <- makeSOCKcluster(rep("localhost", 4))
filenames <- Sys.glob(paste0(dirPath, "*.csv"))
f <- parLapply(cl, filenames, data.table::fread)
stopCluster(cl)