Ken Peng wrote on 10/29/21 2:39 AM:
I saw runif(1) can generate a random num, is this the true random?

runif(1)
[1] 0.8945383

What's the other better method?

Thank you.

Hi,

You do not indicate your use case, and that can be important.

The numbers generated by R's default RNGs are "pseudo random" (PRNGs), which means that for most general purpose applications, such as common Monte Carlo simulations or randomized clinical trial treatment allocations, as suggested by the other replies, they will work fine.

As PRNGs, the actual pseudo-random permutations can be replicated by setting the same 'seed' value each cycle for the PRNG in use.

For example:

> runif(5)
[1] 0.6238892 0.8307422 0.4955693 0.4182567 0.9818217

> runif(5)
[1] 0.2423170 0.4129066 0.9213000 0.8290358 0.1644403

will yield two different, pseudo-random, sequences.

However:

> set.seed(1)
> runif(5)
[1] 0.2655087 0.3721239 0.5728534 0.9082078 0.2016819

> set.seed(1)
> runif(5)
[1] 0.2655087 0.3721239 0.5728534 0.9082078 0.2016819

will yield the same sequence given the use of the same seed value before each call to runif().

Thus, the sequences will appear to be random, but given a specific algorithm and seed value, they are deterministic.

That repeatable behavior can be important if one wishes to come back at some future date and replicate the exact same output sequence, presuming other factors have not changed in the mean time, such as occurred with R version 3.6.0, which is referenced in ?Random, where a default changed to improve behavior.

Also, some R functions may use simulation or resampling approaches to create various parameters, and you may wish to replicate the same result with each iteration. Setting the seed value prior to the relevant function call can enable that.

Also, review the resources at https://www.random.org for additional references on the differences between PRNGs and other implementations, especially if you might need something closer to a "true" RNG for more rigorous work.

Regards,

Marc Schwartz

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to