Я смотрю в foreach и doParrallel в R, и я использую этот doc . Код, который я использую, находится на странице 12. Я также предоставляю его ниже:
n <- length(x)
if (n == 0) {
x
} else {
p <- sample(n, 1)
smaller <- foreach(y=x[-p], .combine=c) %:% when(y <= x[p]) %do% y
larger <- foreach(y=x[-p], .combine=c) %:% when(y > x[p]) %do% y
c(qsort(smaller), x[p], qsort(larger))
}
}
Вопрос, который у меня возникает, - это единственное, что происходит параллельно с частями, которые становятся все меньше и больше? Кроме того, я не совсем уверен, как это улучшит код, если он есть, только потому, что несколько значений проверяются одновременно? Также есть ли способ сделать что-то, если это не удовлетворяет case, как в случае else в операторе if?