Я пытаюсь произвести выборку для двух векторов 1000 раз с заменой и рассчитать соотношение средних. Повторите этот процесс 10000 раз.
Я написал пример параллельного кода, но это занимает гораздо больше времени, чем использование простых циклов for на одной машине.
ratio_sim_par <- function(x1, x2, nrep = 1000) {
# Initiate cluster
cl <- makeCluster(detectCores() - 1) #Leave one core for other operations
clusterExport(cl, varlist=c("x1", "x2", "nrep"), envir=environment())
Tboot <- parLapply(cl, 1:nrep, function(x){
n1 <- length(x1)
n2 <- length(x2)
xx1 <- sample(x1, n1, replace = TRUE) # sample of size n1 with replacement from x1
xx2 <- sample(x2, n2, replace = TRUE) # sample of size n2 with replacement from x2
return(mean(xx1) / mean(xx2))
})
stopCluster(cl)
return(unlist(Tboot))
}
ratio_sim_par(x1, x2, 10000)
Системное время невыносимо. Может ли кто-нибудь помочь мне понять мою ошибку? Спасибо