R实战 第十二篇:随机数
2019-01-05 17:28
155 查看
由R生成的随机数实际上伪随机数,也就是说,随机数是由某种算法而不是真正的随机过程产生的,随机数生成器需要一个初始值来生成数字,该初始值叫做种子。通过把种子设置为特定的值,可以保证每次运行同一段代码时都能生成相同的随机数。
R使用set.seed(n)函数来设置种子值,n是一个正整数,不同的种子会生成不同的随机数:
set.seed(123)
通常使用sample()函数来生成随机数,R也支持从分布中获取随机数。
一,随机抽样
从大的数据集中抽样,获取两份随机样本,一份用于构建预测模型,一份用于验证模型的有效性。
sample()函数用于从数据集中(有放回或无放回)抽取大小为size的一个随机样本。
sample(x, size, replace = FALSE)
参数注释:
- x: x有两个形式,可以是一个向量,也可以是单个正整数值;如果是个正整数值n,那么表示向量1:n;
- size:从总体中抽样的样本的容量,也就是随机数的数量
- replace:默认值是FALSE,表示不放回抽样,也就是说,不会重复样本,每个值只能出现一次。
例如,采用不放回抽样方式,从1到7中获得3个随机数:
> sample(7,3,replace = FALSE) [1] 5 3 4
二,从分布中抽样
可以根据概率分布来生成随机数,大部分的随机数生成函数的名称都是r<distn>,函数的返回值小数:
- runif:生成均匀分布的随机数
- rnorm:生成正态分布的随机数
runif(n, min = 0, max = 1) rnorm(n, mean = 0, sd = 1)
这两个随机数生成函数的第一个参数是生成的随机数的数量,其余参数都会影响分布的形状,生成不同的随机数。
例如,从均匀分布中获得5个随机数:
> runif(5,1,10) [1] 8.564814 8.943688 7.899304 3.898249 1.379053
例如,从正态分布中获得5个随机数:
> rnorm(5,0,1) [1] 1.2410693 0.1370216 -1.2996452 1.1514089 1.5134475
参考文档:
相关文章推荐
- spring boot实战(第十二篇)整合RabbitMQ
- spring boot实战(第十二篇)整合RabbitMQ
- spring boot实战(第十二篇)整合RabbitMQ
- Go实战--golang中各种排序算法实现以及生成随机数
- python实战小程序——redis数据库、随机数的生成
- spring boot实战(第十二篇)整合RabbitMQ
- spring boot实战(第十二篇)整合RabbitMQ
- spring boot实战(第十二篇)整合RabbitMQ
- 【java项目实战】代理模式(Proxy Pattern),静态代理 VS 动态代理
- [渗透技巧] 干货分享--渗透测试工具实战技巧合集
- Hadoop 实战之Streaming(一)
- 项目实战(二)—你的数据库灵活吗?
- 【Spring实战】—— 15 Spring JDBC模板使用
- 浅谈Java中的n种随机数产生办法
- SQL行列转换实战
- 表驱动法概念到实战(一) 原理及基本运用
- Spark源码中的Scala模式匹配编程和Scala模式匹配编程操作实战
- ElasticSearch实战使用
- 微服务架构实战课程介绍
- 【云星数据---Apache Flink实战系列(精品版)】:Flink基础--001:flink介绍