%dorng% | R Documentation |
%dorng%
is a foreach operator that provides an alternative operator
%dopar%
, which enable reproducible foreach loops to be performed.
obj %dorng% ex
obj |
a foreach object as returned by a call to |
ex |
the |
%dorng%
returns the result of the foreach loop. See foreach::%dopar%.
The whole sequence of RNG seeds is stored in the result object as an attribute.
Use attr(res, 'rng')
to retrieve it.
These options are for advanced users that develop 'foreach backends:
'doRNG.rng_change_warning_skip': if set to a single logical FALSE/TRUE
, it indicates
whether a warning should be thrown if the RNG seed is changed by the registered
parallel backend (default=FALSE).
Set it to TRUE
if you know that running your backend will change the RNG state and
want to disable the warning.
This option can also be set to a character vector that specifies the name(s) of the backend(s)
for which the warning should be skipped.
foreach
, doParallel
, registerDoParallel
, doMPI
library(doParallel) cl <- makeCluster(2) registerDoParallel(cl) # standard %dopar% loops are _not_ reproducible set.seed(1234) s1 <- foreach(i=1:4) %dopar% { runif(1) } set.seed(1234) s2 <- foreach(i=1:4) %dopar% { runif(1) } identical(s1, s2) # single %dorng% loops are reproducible r1 <- foreach(i=1:4, .options.RNG=1234) %dorng% { runif(1) } r2 <- foreach(i=1:4, .options.RNG=1234) %dorng% { runif(1) } identical(r1, r2) # the sequence os RNG seed is stored as an attribute attr(r1, 'rng') # stop cluster stopCluster(cl) # More examples can be found in demo `doRNG` ## Not run: demo('doRNG') ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.