我浏览了很多文档,并做了很多谷歌搜索,但是找不到以下问题的答案:有没有一种方法可以使用foreach
包在并行的foreach
循环中引入“类似下一个”功能?
具体来说,我想做类似的事情(这与next
无关,但没有):
foreach(i = 1:10, .combine = "c") %dopar% {
n <- i + floor(runif(1, 0, 9))
if (n %% 3) {next}
n
}
我意识到我可以嵌套括号,但是如果我想在较长的循环中遇到一些下一个条件,这很快就会成为语法梦m。
这里有一个简单的解决方法(类似下一个功能或解决问题的另一种方式)吗?
最佳答案
您可以将代码放入函数中,然后调用return
。从您的示例中尚不清楚在n %% 3
时要执行的操作,因此我将返回NA
。
funi <- function(i) {
n <- i + floor(runif(1, 0, 9))
if (n %% 3) return(NA)
n
}
foreach(i = 1:10, .combine = "c") %dopar% { funi(i) }
关于r - 接下来使用Revolution R的foreach软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7707467/