【R语言编程—转载】——随机数生成的两种方式sample()函数和分布抽取runif/ rnorm

背景介绍

由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,函数的返回值小数:

参数介绍

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

转载来源

https://www.cnblogs.com/ljhdo/p/10225363.html
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。

作者介绍

何世伟
复旦大学医学博士
厦门大学公共卫生硕士
研究方向:表观遗传流行病学、循证医学、生物信息学
联系方式:swheok@foxmail.com

  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值