【问题标题】:Generating random numbers in SAS在 SAS 中生成随机数
【发布时间】:2012-12-16 18:02:57
【问题描述】:

如何使用 sas 中的 ranuni() 函数生成 10 到 50 之间的随机整数。

为了生成 1 到 5 之间的随机整数,我使用了这段代码

data random;
 do i=1 to 10;
    random_int = int(ranuni(0) * 5 + 1);
    output;
 end;

运行;

【问题讨论】:

    标签: sas


    【解决方案1】:

    使用相同的逻辑,您可以使用:

    random_int = int(ranuni(0) * 41 + 10);
    

    ranuni从区间<0, 1>返回一个值,乘以41得到<0, 41>的值,加10得到<10, 51>的值。转换为 int 只是截断了小数部分,所以你永远不会得到 51。

    一般:

    a * ranuni(seed) + b;
    

    从区间 <b, a + b> 返回一个值。

    【讨论】:

      【解决方案2】:

      如果 u 是 [0,1] 上的随机均匀变量,则 x = a + (b-a)*u 是 [a,b] 上的随机均匀变量。 见http://blogs.sas.com/content/iml/2011/08/24/how-to-generate-random-numbers-in-sas/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-03
        • 2011-09-05
        • 2019-05-15
        • 2014-09-13
        相关资源
        最近更新 更多