簡體   English   中英

如何在foreach中以%do%和%dopar%之間的編程方式切換?

[英]How to switch programmatically between %do% and %dopar% in foreach?

通過在使用foreach時將%dopar%更改為%do%,我可以按順序運行代碼。 我該如何以編程方式執行此操作?

例如,我想要以下但只有一個foreach聲明:

library(doParallel)
library(foreach)

registerDoParallel(cores = 4)

runner <- function(parallel = FALSE) {
  if (parallel)
    foreach(i=1:10) %dopar% {
      print(i)
    }
   else
    foreach(i=1:10) %do% {
      print(i)
    }
}

runner()
runner(TRUE)

您可以使用ifelse來選擇中綴函數:

runner <- function(parallel = FALSE) {
     `%myinfix%` <- ifelse(parallel, `%dopar%`, `%do%`)
     foreach(i=1:10) %myinfix% {
         print(i)
     } 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM