Я нашел особенность/ошибку в пакете foreach, который я не понимаю. Возможно, кто-то может объяснить мне такое поведение:Структура списков в пакете 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
Может кто-то объяснить такое поведение? Спасибо за любую помощь!