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

时间:2015-01-23 16:18:59

标签: r file fread

我需要将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元素都是按顺序保存的,因此我无法使用f访问每个allf[[i]]

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这是使用snow包,我能够看到正常加载的收益,尽管我们应该在评论中按照@joran的预期:

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