全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2133 4
2012-05-27
Dear experts,我想从我的数据从生成100个样本,每个样本中包含100个股票,选择每只股票进入某一样本时需要满足一定的条件。我用了大概如下的一个宏,可是并没有达到效果,似乎里面那个循环没有循环起来。我想用w计数每一个样本中有多少只股票,达到100只就去建立下一个样本,直到获得100个样本。cusip是股票代码。由于我的样本是with replacement的,所以可能取到相同的股票,这样的话如果cusip不同则w+1则我的样本中可能超过100只股票。请问该如何写这段程序呢?非常紧急,请各位专家帮帮忙。万分感谢!!!

%macro sample_construction;%do i=1 %to 100;
  %do %until (sample&i.w>100);
  此处略去多行。。。
  
  data work.sample&i;
   set work.sample&i;
   if cusip ne lag(cusip) then w+1
  run;
%end;
%end;%mend sample_construction;%sample_construction;








二维码

扫码加我 拉你入群

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

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

全部回复
2012-5-27 23:09:30
我觉得先把重复的股票号去掉,然后用循环的serveyselect比较好,请参考代码,希望能帮上忙!
复制代码
二维码

扫码加我 拉你入群

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

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

2012-5-27 23:30:08
eddions 发表于 2012-5-27 23:09
我觉得先把重复的股票号去掉,然后用循环的serveyselect比较好,请参考代码,希望能帮上忙!
谢谢你的回复,我想过这种方法,可是我需要的每个样本中的100只股票必须满足一些条件,这样选可能某些股票就不满足,但是我无法知道有多少不满足,需要再选多少才够100.

我之前用过的一个方法是先把重复的股票名字去掉,再把所有满足条件的股票选出来,然后用surveyselect从中选100个股票。可是最后的结果不太让我满意,所以我就想换个方法试试,一只一只股票地选。
二维码

扫码加我 拉你入群

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

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

2012-5-28 10:39:06
请各路大神帮帮忙啊!
二维码

扫码加我 拉你入群

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

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

2012-5-28 16:22:18
不过也不知道你还有其他什么条件要求啊,数据排列什么的也都不清楚……
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群