Я довольно новичок в использовании таких пакетов, как "foreach" и "do.parallel".Сейчас я пытаюсь выяснить, как разбить оператор во вложенном цикле foreach.Вот упрощенный пример того, что я хочу сделать.Это исходный цикл for, который я хотел бы воспроизвести с помощью foreach (на самом деле мой код не может быть легко преобразован в цикл while, но если такое решение существует, можно вместо этого использовать цикл while):
for (i in 1:30) {
for (j in 1:40) {
x <- paste0(i,j)
print(x)
if (j >= 30) {
break
}
}
}
Это моя попытка перевести на foreach.Я хочу распараллелить только внешний цикл, но хотел бы иметь возможность разорвать внутренний (последовательный) цикл после выполнения определенного условия if.
(cl <- (detectCores() - 1) %>% makeCluster(outfile = "")) %>% registerDoParallel
foreach (i = 1:30, .packages = "foreach") %dopar% {
foreach (j = 1:40) %do% {
x <- paste0(i,j)
print(x)
if (j >= 30) {
break
}
}
}
Я изучил другие решения, предложенные для SO, однако большинство решений были намного более продвинутыми, чем простой случай, который я ищу.
Спасибо!