首页 > 解决方案 > 当 FOR 循环包含 seq 时,foreach 不起作用

问题描述

我正在尝试并行处理模拟,我的函数有一个 for 循环,其顺序显示开始、结束和增量。当我将 FOR in 转换为 foreach 时,我看到一个语法错误。下面是一个简化的示例。感谢并行处理此代码的任何输入。

fn_foreach <- function(){ 
 for(i in seq(0.01,0.1,0.01)) #i range 0.01-0.1 increments by 0.01 
 { 
 # print(paste("t =", i))
 dots <- sqrt(i)} 
 return(dots)
 }

 x2 <- fn_foreach()

标签: rforeachparallel-processing

解决方案


这似乎是一种误解foreachforeachforeach软件包提供的实用程序。

library(foreach)
library(parallel)
cl <- makeCluster(2)
library(doParallel)
registerDoParallel(cl)
foreach(i = seq(0.01, 0.1, 0.01)) %dopar% {
  sqrt(i)
}
stopCluster(cl)

推荐阅读