全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3734 4
2010-03-16
先要根据行业、年份找到ST公司在当年资产最相近的公司,

proc sql;
create table temp as select *
from st,gg
where st.Csrciccd1 = gg.Csrciccd1
  and st.year = gg.year
  and (abs(st.totass-gg.totass1)/st.totass <= 0.05);
quit;

其中st 数据集为包括ST的数据,gg数据集为非ST公司数据;Csrciccd是行业代码变量,
totass 变量是当年总资产,

经过上述步骤匹配后,有一对多的情况,接下来不知道怎么处理,求高手指教?或者还有其他方法实现?

谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-3-16 22:18:04
1.按行业类别、年、ST公司求下(abs(st.totass-gg.totass1)/st.totass)的min 设为min
2.以min为连接条件连接你现在的结果表
3.再有重复即存在在你的定义下多家非ST公司和一家ST公司资产“相近尺度”相同,你需要制定去重规则另行去重

希望对你有帮助
二维码

扫码加我 拉你入群

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

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

2010-3-16 22:51:39
soporaeternus 发表于 2010-3-16 22:18
1.按行业类别、年、ST公司求下(abs(st.totass-gg.totass1)/st.totass)的min 设为min
2.以min为连接条件连接你现在的结果表
3.再有重复即存在在你的定义下多家非ST公司和一家ST公司资产“相近尺度”相同,你需要制定去重规则另行去重

希望对你有帮助
proc sql noprint;
create table temp as select *,abs(totass-totass1) as mark
from st,gg
where st.Csrciccd1 = gg.Csrciccd1
  and st.year = gg.year
;quit;
proc sql;create table final as
select * from temp group by csrciccd1,year having mark=min(mark);quit;
二维码

扫码加我 拉你入群

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

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

2018-7-2 06:20:22
xiaosanmao 发表于 2010-3-16 22:51
proc sql noprint;
create table temp as select *,abs(totass-totass1) as mark
from st,gg
这个只能筛选出 st 数据库中的数据以及mark值来,筛不出配对样本,求赐教
二维码

扫码加我 拉你入群

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

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

2018-7-2 07:00:17
这个程序的前提是在st库和配对库中,除了行业和年份变量名一样之外,其他所有的变量都需要重命名,否则就会被覆盖掉。但是这个还有一个问题会不会重复配对?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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