R中的确定性伪随机数生成

时间:2013-11-19 14:56:34

标签: r random prng

我需要生成一个“随机”数字的向量,除了它们需要完全确定。数字来自的分布并不那么重要。在R?

中执行此操作的简单方法是什么?

不使用像runif之类的东西的原因是它每次调用都会返回不同的序列。

不生成一个序列(使用runif)并重复使用它的原因是调用是在不同的机器上进行的。我可以将序列硬编码到脚本中,但所需序列的长度在设计时是未知的,因此基于某些硬编码种子的伪随机序列更可取。

2 个答案:

答案 0 :(得分:8)

您是否了解set.seed()命令?

R> set.seed(42); runif(3)           
[1] 0.914806 0.937075 0.286140
R> set.seed(42); runif(3)            # same seed, same numbers
[1] 0.914806 0.937075 0.286140
R> set.seed(12345); runif(3)         # different seed, different numbers
[1] 0.720904 0.875773 0.760982
R>

答案 1 :(得分:1)

还有SoDa package(和manual [PDF]),它允许您包装其他操作并恢复开始和结束种子。它只是set.seed()的包装,但您可以更轻松地检查自己(例如在单元测试中)。