背景介绍
由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