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
有人可以解释这种现象? 感谢您的帮助!