Numbers-生成随机数

作者: 王诗翔 | 来源:发表于2017-09-07 15:02 被阅读45次

    问题

    你想要生成随机数。

    方案

    要生成均匀分布的随机数,可以使用runif()函数。默认,它的范围是从0到1.

    runif(1)
    #> [1] 0.09006613
    
    # 得到4个数字的向量
    runif(4)
    #> [1] 0.6972299 0.9505426 0.8297167 0.9779939
    
    # 得到3个从0到100变化的向量
    runif(3, min=0, max=100)
    #> [1] 83.702278  3.062253  5.388360
    
    # 得到从0到100变化的整数
    # 使用max=101 因为它永远不可能等于101。 这里利用的floor函数是用来向下取整数的
    floor(runif(3, min=0, max=101))
    #> [1] 11 67  1
    
    # 这个方式的结果一样
    sample(1:100, 3, replace=TRUE)
    #> [1]  8 63 64
    
    # 生成不可替换(就是不能再取)的整数
    sample(1:100, 3, replace=FALSE)
    #> [1] 76 25 52
    

    要生成服从正态分布的数字,使用rnorm()。默认均值是0,标准差是1。

    rnorm(4)
    #> [1] -2.3308287 -0.9073857 -0.7638332 -0.2193786
    
    # 使用不同的均值和标准差
    rnorm(4, mean=50, sd=10)
    #> [1] 59.20927 40.12440 44.58840 41.97056
    
    # 为了检查这个分布是否正确,给随机数画直方图
    x <- rnorm(400, mean=50, sd=10)
    hist(x)
    

    注意

    如果你想要你生成随机数的结果可重复,参看../Generating repeatable sequences of random numbers

    其他


    这里作者给出了生成随机数的一些简单示范,并没有介绍一些常见的函数。关于常见的数学、统计、概率和字符函数,大家可以参考我之前做的笔记R实战——数值与字符处理函数

    by 诗翔

    相关文章

      网友评论

        本文标题:Numbers-生成随机数

        本文链接:https://www.haomeiwen.com/subject/dweijxtx.html