如何使用sas中的ranuni()函数生成介于10和50之间的随机整数。
为了生成1到5之间的随机整数,我使用了这段代码
data random;
do i=1 to 10;
random_int = int(ranuni(0) * 5 + 1);
output;
end;
运行;
答案 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/