楼主: bobguy
1734 0

[原创博文] use sortn in a random sample [推广有奖]

学科带头人

7%

还不是VIP/贵宾

-

威望
0
论坛币
14187 个
通用积分
28.9279
学术水平
344 点
热心指数
363 点
信用等级
228 点
经验
104882 点
帖子
1846
精华
0
在线时间
1608 小时
注册时间
2008-7-18
最后登录
2019-3-8

中级热心勋章

楼主
bobguy 发表于 2010-1-31 02:26:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
Here is an example to use sortn in a random sample.

1)randomly select the obs number and store in an array
2)use direct access to read in data from bigdata.

This appoach may beat sas surveyselect procedure if the bigdata is BIG and sampling size is SMALL.


%let nobs=1000;
data bigdata;
   do i = 1 to &nobs;
       x=ranuni(123);
    output;
    end;
run;

%let size=40;
%let seed=78936;

data sample;
   array p[&nobs] _temporary_ ;
   array pk
  • pk1-pk&size;
       seed  = &seed;
       do  until(done=1);
          index=ceil(&nobs*ranuni(seed));
          if p[index] = . then do;
             p[index]=index;
             index2+1;
             pk[index2]=index;
             if index2=&size then done=1;
          end;
      end;

       call sortn(of pk
  • );

       do _i_ = 1 to &size;
          obs = pk[_i_];
          set bigdata point=obs;
          output;
          end;
       stop;
       drop pk: seed   done    index    index2 _i_;
       run;
       proc print; run;
  • 二维码

    扫码加我 拉你入群

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

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

    关键词:random Sample sortn AMPL rand

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

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