我需要生成一个“随机”数字的向量,除了它们需要完全确定。数字来自的分布并不那么重要。在R?
中执行此操作的简单方法是什么?不使用像runif
之类的东西的原因是它每次调用都会返回不同的序列。
不生成一个序列(使用runif
)并重复使用它的原因是调用是在不同的机器上进行的。我可以将序列硬编码到脚本中,但所需序列的长度在设计时是未知的,因此基于某些硬编码种子的伪随机序列更可取。
答案 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()
的包装,但您可以更轻松地检查自己(例如在单元测试中)。