楼主: cdexswzaq4034
2404 4

求助:有关产生随机数后再排序提取中间某数的方法 [推广有奖]

  • 0关注
  • 0粉丝

小学生

42%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
198 点
帖子
7
精华
0
在线时间
6 小时
注册时间
2012-3-24
最后登录
2013-5-2

楼主
cdexswzaq4034 发表于 2012-4-7 20:10:43 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
本人想做值序抽样法产生随机数。产生500组0 1均匀分布的随机数,每组有6个,然后从小到大排序,想提取排第4的到一个新的变量y,求高手指教。本人愚钝,只能做到如下,求修正,求添加
data a;
do j=1 to 500;
array r{6} r1-r6;
  do i=1 to 6;
  r{i}=ranuni(0);
end;output;end;



二维码

扫码加我 拉你入群

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

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

关键词:随机数 output ranuni array outpu

沙发
freerunning_sky 在职认证  发表于 2012-4-7 23:16:09
  1. data a;
  2.         drop i j;
  3.         array r{6} r1-r6;
  4.         do j=1 to 500;
  5.                   do i=1 to 6;
  6.                           r{i}=ranuni(0);
  7.                 end;
  8.                 output;
  9.         end;
  10. run;

  11. data b;
  12.         set a;
  13.         max_1=0;
  14.         max_2=0;
  15.         y=0;
  16.         array r(*) r1-r6;
  17.         do i=1 to 6;
  18.                 if r(i)>=max_1 then do;
  19.                         y=max_2;
  20.                         max_2=max_1;
  21.                         max_1=r(i);
  22.                 end;
  23.                 else if r(i)>=max_2 then do;
  24.                         y=max_2;
  25.                         max_2=r(i);
  26.                 end;
  27.                 else if r(i)>=y then y=r(i);
  28.         end;
  29.         drop max_1 max_2 i;
  30. run;
复制代码
比较土,但可以实现

藤椅
bobguy 发表于 2012-4-7 23:50:21
adding a sortn call just before out as below,


data a;
seed=12789;
array r{6} r1-r6;
do j=1 to 500;
        do i=1 to 6;
                  r{i}=ranuni(seed);           
        end;
       call sortn (of r{*});
        output;
end;
keep r:;
run;

proc print;
sum r:;
run;

板凳
cdexswzaq4034 发表于 2012-4-8 02:34:03
freerunning_sky 发表于 2012-4-7 23:16
比较土,但可以实现
谢谢,万分感谢。请原谅新手没币。

报纸
cdexswzaq4034 发表于 2012-4-8 02:35:47
bobguy 发表于 2012-4-7 23:50
adding a sortn call just before out as below,
谢谢,这位高手的较为简洁。call sorth给我新的知识了,谢谢。但是我要提取排第4的值,所以似乎要在output前再加个y={4};也很谢谢你。请原谅新手没币送。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-31 14:20