我需要将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]]
。
如何解决这个问题?
答案 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)