1

在 R 中,有没有办法将一个长的并行 for 循环分解为几个较短的循环,并且仍然保持它们的可重复性和相同性?

我尝试使用doRNGandforeach包来做到这一点,但是当我紧接着使用几个短循环时,RNG 种子与使用一个长循环时不同,因此结果不同。

====

示例代码

library(doRNG)
library(foreach)
library(doParallel)

# one loop
set.seed(123) 
x1 <- foreach(i = 1:4) %dorng% sample(100, 5)

# several loops
set.seed(123) 
x2 <- foreach(i = 1:2) %dorng% sample(100, 5)
# ... possibly doing other computations and then resetting seed ...
x3 <- foreach(i = 1:2) %dorng% sample(100, 5)

all.equal(c(x1), c(x2, x3)) # component 3 and 4 differ
4

0 回答 0