全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1358 7
2012-03-05
我的数据结构是这样的
da.dailyreturn                                             da.bond
stkcd      return  date                               riskfreerate      date
000024  0.11     200301                          0.009             200302
000024  0.12     200302                          0.010             200303
000024  0.13     200303                          0.011             200304
000025  0.14     200301  
000025  0.15     200302
000025  0.16     200303
000026  0.17     200301
000026  0.18     200302
000026  0.19     200303

我想要将两个数据集da.dailyreturn和da.bond匹配合并,合并只有重合的数据。只比如riskfreerate有200302,200303和200304的数据,而dailyreturn的数据没有200304的数据,那么只保留200302和200304,即是合并后期望变为:
stkcd      return  date          riskfreerate
000024  0.12     200302     0.009                  
000024  0.13     200303     0.010                  
000025  0.15     200302     0.009
000025  0.16     200303     0.010
000026  0.18     200302     0.009
000026  0.19     200303     0.010

我用的方法是
data da.combine;
merge da.dailyreturn(in=ina) da.bond(in=inb);
by date;
if ina=1 and inb=1;
run;
得到的结果是:
stkcd      return  date          riskfreerate
000024  0.12     200302     0.009                  
000024  0.13     200303     0.010         

求救啊,为什么其他的股票没有了?000025和000026去哪里了?
怎么办的?
二维码

扫码加我 拉你入群

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

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

全部回复
2012-3-5 22:36:12
可以用stata
use da.dailyreturn
merge   date using da.bond
keep if _merge==3

二维码

扫码加我 拉你入群

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

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

2012-3-5 22:54:35
应该将两个数据集按照date 进行排序,或者用sql 来做。
二维码

扫码加我 拉你入群

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

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

2012-3-5 22:59:15
如果da.dailyreturn排序了,
按照LZ的code可以得到想要的数据集.

proc sort data=da.dailyreturn out=da.drsort;
by date;run;

data da.combine;
merge da.drsort(in=ina) da.bond(in=inb);
by date;
if ina=1 and inb=1;
run;

Obs    stkcd    return     date     riskfreerate

                          1       24      0.12     200302        0.009
                          2       25      0.15     200302        0.009
                          3       26      0.18     200302        0.009
                          4       24      0.13     200303        0.010
                          5       25      0.16     200303        0.010
                          6       26      0.19     200303        0.010
二维码

扫码加我 拉你入群

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

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

2012-3-5 23:16:09
楼主是否提前进行了sort工作呢?
二维码

扫码加我 拉你入群

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

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

2012-3-6 00:45:12
priss111 发表于 2012-3-5 22:59
如果da.dailyreturn排序了,
按照LZ的code可以得到想要的数据集.
刚刚试过,完全没错,太感动了太谢谢了。。。。但是确不了解为什么要按照date排序呢?
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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