繁体   English   中英

并行化:打包“ parallel”而不是“ mclapply”

[英]Parallelization: package “parallel” instead of “mclapply”

我正在尝试将此代码转换为可以在Windows上执行的代码:

numCores <- detectCores()
results <- mclapply(seq(1, 500), function(file, fID){
  myData <- fread(file.path(dirPath, fID, paste0(file, ".csv")))
  return(cbind(myData, rep(file, nrow(myData))))
}, mc.cores = numCores, fID = 1)

基于使用本教程 ,我编写了以下代码...

更新:下面提供了正确的代码:

getAllMyData <- function(numCores,folderID)
{
  dirPath = paste0("D:/home/", folderID, '/')
  cl <- makeCluster( 4 )
  allTrips = parLapply(cl, 1:200, function(z){
    myData <- read.csv(paste0(dirPath, z, ".csv"))
    return(cbind(myData , rep(z, nrow(myData))))
  })
  stopCluster(cl)  
  return(allTrips)
}

numCores <- detectCores()
allMyData <- getAllMyData(numCores,1)

您的第一个代码调用一个函数

function(file, fID)

相比之下,您的第二个代码使用

function(dirPath,fID)

那是错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM