SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1346|回复: 3
打印 上一主题 下一主题

如何产生随机数?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2006-7-2 12:15:25 | 只看该作者

如何产生随机数?

如何能在指定的数字范围内(例如300内)有放回和无放回的随机抽取其中的n个(例如10个)数字呢?

多谢指教了!

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

例如
P1 P2 P3
a1 a2 a3

a1、a2、a3是变量P1、P2、P3的取值,能否让a1、a2、a3是指定的数字范围内随机抽取的数字?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2006-7-3 18:43:13 | 只看该作者

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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2006-7-9 21:51:00 | 只看该作者

huifu

这里如何体现了有放回和无放回?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2006-7-12 11:37:09 | 只看该作者

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;


不知是否合理
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-3 18:33 , Processed in 0.094605 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表