Я нашел функцию/ошибку в пакете foreach, который я не понимаю. Возможно, кто-то может объяснить мне такое поведение:
Я создал цикл for с пакетом foreach
(я использую их вместе с вычислениями mutlicore, но здесь, как раз в примере с последовательностью, ошибка появляется в обоих вариантах). Этот цикл работает r
раз. В каждом запуске возвращается список с c
. Поэтому я ожидаю список с элементами r
, и каждая запись состоит из списков c
.
Мой код был следующим:
library(foreach)
clusters <- 10
runs <- 100
temp <- foreach(r = 1:runs,
.combine = 'list',
.multicombine = TRUE) %do% {
signal_all <- lapply(1:clusters, function(x){
return(1)
})
return(signal_all)
} ## end do
С помощью этого кода все работает как ожидается, см. следующий рисунок:
Но при увеличении runs <- 101
вывод temp
таков:
Ожидаемая структура списка уничтожается. Но при комментировании строки .combine = 'list'
все работает так, как ожидалось.
library(foreach)
clusters <- 10
runs <- 100
temp <- foreach(r = 1:runs,
.multicombine = TRUE) %do% {
signal_all <- lapply(1:clusters, function(x){
return(1)
})
return(signal_all)
} ## end do
Может кто-нибудь объяснить это поведение? Спасибо за любую помощь!