在 R 中将 set.seed() 与 foreach() 一起使用

Use set.seed() with foreach() in R

我目前 运行 在 R 中使用 for 循环进行模拟,但想切换到 foreach 循环,因为它更快。我在 for 循环中使用 set.seed() ,并希望再次将其与 foreach 一起使用,以便获得相同的结果。

例如,假设我有

x <- c()
for (i in 1:10){
    set.seed(i)
    x[i] <- rnorm(1)
}

我如何使用 foreach 做同样的事情?我认为这行不通:

x <- foreach(i = 1:10, ...) %dopar% {set.seed(i) ... }

这个有效:

library (foreach)

fn<-function(i)
{
  set.seed(i)
  y <- rnorm(1)
  return(y)
}

x<-foreach(i=1:10) %do% fn(i)
print(x)