楼主: ustbwxl
1938 0

关于配对程序的一个小问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

64%

还不是VIP/贵宾

-

威望
0
论坛币
88 个
通用积分
3.3017
学术水平
2 点
热心指数
4 点
信用等级
1 点
经验
2769 点
帖子
74
精华
0
在线时间
82 小时
注册时间
2010-1-5
最后登录
2016-1-22

楼主
ustbwxl 发表于 2012-7-27 19:09:56 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

m3.rar (22.43 KB) 本附件包括:

  • m3.sas7bdat
我想实现样本配对,要求是这样的:在相同年度中找行业相同,业绩相近的配对样本组。最好的结果是行业代码1相同,配对样本组的roa在样本roa0.91.1之间;如果未找到配对样本,放宽行业即使用行业代码2相同,roa要求如上;如果还是找不到,不要行业限制,仅要求roa;如果最终还是找不到配对样本,取同行业(行业代码1)样本与配对样本roa相差的绝对值最小的三个样本作为配对样本。

我是用do语句来做的,思路是先选一个样本,按年度与配对数据集合并,再在这个数据集中用if语句实现配对。附件中是一个样本已按年度合并后的数据集,各项数据:股票代码stkcd、行业代码indu1(制造业取前两位)、行业代码indu2(全部都取第1位)、roa

配对过程是这样的:我试着编写了以下程序,但运行后发现:找到满足条件的样本后,程序并未转至结尾,而是顺序执行后面的语句,由于配对条件是一个比一个条件松,因此最终似乎只留下最后一个条件的配对结果。如何使程序在找到满足条件的样本后即结束?请高手指点。

data m4; set m3;

if sindu=mindu and sindu1=mindu1 and  0.9*roa1<=roa2<=1.1*roa1 then do; where sindu=mindu  and  0.9*roa1<=roa2<=1.1*roa1;

end;

else if sindu~=mindu and sindu1=mindu1 and 0.9*roa1<=roa2<=1.1*roa1 then do; where  sindu~=mindu and sindu1=mindu1 and 0.9*roa1<=roa2<=1.1*roa1;

end;

else if sindu~=mindu and sindu1~=mindu1 and 0.9*roa1<=roa2<=1.1*roa1 then do;  where  sindu~=mindu and sindu1~=mindu1 and 0.9*roa1<=roa2<=1.1*roa1;

end;

else do; where sindu=mindu and t1<4; end;/*t1是按roa差的绝对值排完序的序号*/

run;

二维码

扫码加我 拉你入群

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

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

关键词:小问题 stkcd 配对样本 Mind 最后一个 程序 配对

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

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