您的位置:首页 > 编程语言

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

2019-07-21 17:54 417 查看

随机数生成的两种方式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.geek-share.com/detail/2757680480.html
    本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。

    作者介绍

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

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: