12
我發現了一個foreach包中的功能/錯誤,我不明白。也許有人可以解釋我的這種行爲:在foreach包中的列表結構
我創建了一個for循環與foreach
包(我與他們一起使用mutlicore計算,但這裏只是在一個sequentiell的例子中,這個錯誤出現在這兩個變種)。該循環運行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
有人可以解釋這種現象? 感謝您的幫助!