在 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)
我目前 运行 在 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)