r - 我正在使用 set.seed() 但在每次运行中得到不同的答案
问题描述
我想如果我set.seed()
在函数内部使用,那么每次运行该函数时都会使用相同的种子,我会得到相同的准随机输出。举个例子:
my_fun <- function(n, v1, v2){
set.seed = 42
return(runif(n, v1, v2))
}
my_fun(1,2,3)
#> [1] 2.078126
my_fun(1,2,3)
#> [1] 2.918556
my_fun(1,2,3)
#> [1] 2.189768
每次我使用相同的输入运行该函数时,我都希望得到相同的结果。你能给我一些关于我为什么不这样做的教育吗?
解决方案
set.seed()
是一个函数,它的参数等于您想要为伪随机数生成器 (prng) 播种的值。种子是用于开始生成数字的值。大多数 prng 将使用当前时间作为默认值,但是当您将种子传递给它时,您正在确定起始值,因此所有值也将在它之后。
所以你需要把它叫做
set.seed(42)
适当地设置你的种子
这是另一个问题,它对这个函数实际上在做什么给出了很好的回应https://stats.stackexchange.com/questions/86285/random-number-set-seedn-in-r
推荐阅读
- swift - 在 XCode 中使用方案管理文件
- c# - 使用来自 Amazon 的 SP-API C# 开发工具包构建说明
- javascript - 如何在 NextJS 中为 getStaticProps 获取自己的 API 路由?
- c# - 无法遵循 Identity Server 定义 API 资源和范围的文档
- twilio - 在 Twilio Programmable Chat 中并行创建聊天客户端
- reactjs - react-three-fiber 360 图像比原始图像更暗
- react-native - React Native 如何在本机应用程序上打开社交媒体 URL
- php - 将联系表格 7 数据保存到特定联系表格的自定义数据库中
- python - 将python程序的输出直接重定向到cpp程序的输入
- java - 如何使用 JCache 在客户端-服务器拓扑中使用 Hazelcast?