中断R中的嵌套foreach循环

时间:2019-02-11 14:42:49

标签: r foreach parallel-processing break

我对使用诸如“ foreach”和“ do.parallel”之类的软件包是相当陌生的。我现在试图找出如何在嵌套的foreach循环中破坏语句。这是我要做什么的简化示例。这是我想使用foreach复制的原始for循环(实际上,我的代码无法轻松地转换为while循环,但是如果存在这样的解决方案,则可以改为使用while循环):

for (i in 1:30) {
  for (j in 1:40) {
    x <- paste0(i,j)
    print(x)
    if (j >= 30) {
      break
    }
  }
} 

这是我尝试翻译成foreach的尝试。我只想并行化外部循环,但是只要满足特定的if条件,便希望能够中断内部(顺序)循环。

(cl <- (detectCores() - 1) %>%  makeCluster(outfile = "")) %>% registerDoParallel

foreach (i = 1:30, .packages = "foreach") %dopar% {
  foreach (j = 1:40) %do% {
    x <- paste0(i,j)
    print(x)
    if (j >= 30) {
      break
    }
  }
}

我研究了关于SO的其他解决方案,但是,大多数解决方案比我要寻找的简单案例要先进得多。

谢谢!

0 个答案:

没有答案