并行化:包 "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)
在使用this tutorial的基础上,写了如下代码...
更新:下面提供了正确的代码:
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)
那是错误。
我正在尝试将此代码转换为可在 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)
在使用this tutorial的基础上,写了如下代码...
更新:下面提供了正确的代码:
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)
那是错误。