SAS中文论坛

标题: 如何产生随机数? [打印本页]

作者: shiyiming    时间: 2006-7-2 12:15
标题: 如何产生随机数?
如何能在指定的数字范围内(例如300内)有放回和无放回的随机抽取其中的n个(例如10个)数字呢?

多谢指教了!

BTW,对于抽取随机数,除了能对变量(列)进行操作,能对行进行操作吗?

例如
P1 P2 P3
a1 a2 a3

a1、a2、a3是变量P1、P2、P3的取值,能否让a1、a2、a3是指定的数字范围内随机抽取的数字?
作者: shiyiming    时间: 2006-7-3 18:43
标题: revert
data a;
retain seed1 123 seed2 456;
do i=1 to 10;
call ranuni(seed1,x1);
call ranuni(seed2,x2);
a1=int(x1*300);
a2=int(x2*200);
output;
end;
proc print;run;
作者: shiyiming    时间: 2006-7-9 21:51
标题: huifu
这里如何体现了有放回和无放回?
作者: shiyiming    时间: 2006-7-12 11:37
标题: re:
有放回:

   data a;
       retain seed1 12374478 seed2 456485857;
       do i=1 to 10;
          call ranuni(seed1,x1);
          a=int(x1*10);
          output;
       end;
    run;

无放回:

   proc plan seed=1234567;
          factors block=10 length=1;
          output out=b(keep=block);
     run;


不知是否合理




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2