在SAS中生成随机数

时间:2013-01-02 11:02:20

标签: sas

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

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

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

运行;

2 个答案:

答案 0 :(得分:8)

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

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

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

Generaly:

a * ranuni(seed) + b;

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

答案 1 :(得分:1)

如果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/