楼主: 布莱特
2288 5

[求助]另一个关于产生随机数的问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:94份资源

大专生

53%

还不是VIP/贵宾

-

威望
0
论坛币
972 个
通用积分
0.1200
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
452 点
帖子
69
精华
0
在线时间
0 小时
注册时间
2007-10-12
最后登录
2016-9-22

楼主
布莱特 发表于 2007-11-14 09:49:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

假如我现在有x1 x2 x3、、、x201,201个离散数据,我想生成1000000个随机数就在前面的201个数据中取,但必须使前面201个数据取到的机会向等。

能够直接写程序生成吗?还是得先生成均匀随机数,然后再匹配呢?

哎现在才知道自己又多菜~~~!!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:随机数 离散数据 求助 随机数

回帖推荐

zzheng722 发表于2楼  查看完整内容

  如果你的数据集 a , 有一个变量 x, x 有201 个值, 你想生成1000000个随机数就在x的201个数据中取,ranuni( ) 就让你抽到的机会相等,point= 告诉SAS在哪抽,stop 必须用,如果你用 point=.data b;do samples=1 to 1000000;obs_pointer=ceil (ranuni(0)*201);set a  point=obs_pointer;output;end;stop;run;proc print data=b (obs=1000);run;        &nb ...

本帖被以下文库推荐

沙发
zzheng722 发表于 2007-11-16 10:36:00

  如果你的数据集 a , 有一个变量 x, x 有201 个值, 你想生成1000000个随机数就在x的201个数据中取,

ranuni( ) 就让你抽到的机会相等,point= 告诉SAS在哪抽,stop 必须用,如果你用 point=.

data b;
do samples=1 to 1000000;
obs_pointer=ceil (ranuni(0)*201);
set a  point=obs_pointer;
output;
end;
stop;
run;

proc print data=b (obs=1000);
run;            

**please try smaller sample first, before you use samples=1 to 1000000, it is too big**;

                 

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 10 精彩帖子

总评分: 经验 + 3  论坛币 + 10   查看全部评分

藤椅
rain958 发表于 2007-11-16 11:34:00
弓虽!

板凳
布莱特 发表于 2007-11-16 17:56:00

谢谢,非常感谢!我以为帖子沉下去,不会再有人回答了,意外中的惊喜。

报纸
chenxueping 发表于 2007-11-16 22:56:00
问一下,这个是什么意思,看不懂,谢谢obs_pointer=ceil (ranuni(0)*201);

地板
zzheng722 发表于 2007-11-23 11:16:00

obs_pointer=ceil (ranuni(0)*201) 相当于生成一个0-1 的小数后乘以201,则为0-200.9999999.., 取最近的上一位整数,为任意一个 1 到 201 的整数,告诉SAS这就是你要的某个观察值 (observation) 的行数。

obs_point=ceil(ranuni(0)*201) has the same result as:

obs_point=int(ranuni(0)*201) + 1;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 08:10