r - 在R中设置种子
问题描述
如果我想在 R 中生成几个随机变量,都使用相同的种子,我每次都必须设置种子吗?例如,我应该写:
set.seed(123456)
x = runif(1000,0,1)
set.seed(123456)
e = rnorm(1000,0,1)
set.seed(123456)
y = 4 + 0.3*x + e
还是只设置一次种子并定义所有变量?
解决方案
建议只设置一次随机种子。
从那时起,您可以使用它自由地生成随机数。
现在,要重现完全相同的随机数序列,您需要
- 用相同的种子播种生成器,
- 使用相同的随机数生成器(通过
RNGKind
;您通常不会在 R 中触及它), - 对消耗随机数的函数执行完全相同的调用序列。
最后一点很重要:设置相同的随机种子但执行不同的调用序列,将产生不同的随机数。例如:
set.seed(12345)
runif(10)
rnorm(10)
set.seed(12345)
runif(5)
rnorm(10)
…这将为呼叫产生不同的随机数。rnorm
推荐阅读
- nan - 在生成 libffm.txt 文件作为字段分解机 (xLearn) 的输入时处理 NaN 和缺失值
- python - CPU 上的 tensorflow-mkl 问题
- java - 如何从键是java对象一部分的json字符串中提取特定值
- d - 将模板参数应用于函数而不调用函数?
- amazon-web-services - IAM 政策将一种类型的实例仅限制为 Ec2-classic
- html - 使用 selenium python 3 点击 web-table
- vba - 尝试运行删除查询时出现运行时错误 3008。错误是说它试图删除的表记录已经打开?
- laravel - View::composer 不在 boot() 服务提供者上工作
- c# - 在 linq 语句中重用选择新对象
- node.js - 从 Node.js 中 Azure Functions 代码中的外部 API 调用获取响应