全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
15074 10
2013-01-04
我有两个数据集,第一个为info,包括stkcd,date,price,数据举例如下:stkcd date price
000001 1998-08-20 5
000001 1998-08-21 5.5
600001 1998-08-20 6.5
600002 1998-08-20 7.5
600004 1998-08-21 8
......
第二个为市场数据market,包括date,market_index;
date market_index
1998-08-20 0.56
1998-08-21 0.57
.......
现在需要在第一个数据的每支股票后面加上市场指数,很明显,要用date来合并,但是info中的date并不是唯一的,我这样写:
proc sort data=info;by date;run;
proc sort data=market;by date;run;
proc sql;
create table buyer_price as
select a.*,b.market_index
from info a left join market b on a.date=b.date;
quit;

请问我这样写对吗?还有更好的方法吗?另外,我的这种方法是否适用于多对多合并?
谢谢解惑。
二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-4 22:26:17
market中的data唯一吗?如果唯一就没有问题
而且不需要事先排序
二维码

扫码加我 拉你入群

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

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

2013-1-4 22:44:27
ziyenano 发表于 2013-1-4 22:26
market中的data唯一吗?如果唯一就没有问题
而且不需要事先排序
谢谢!market中的date唯一。
我还有一个数据集,这个数据集包括:stkcd annoucement_date
举例如下:
stkcd annoucement_date
000001 1998-09-20
000001 2002-03-20
000002 1999-09-31
......
现在需要将其和上面合并好的数据集buyer_price合并,buyer_price中的stkcd也不是唯一的。
也就是说只能通过stkcd合并,但两个数据集中的stkcd并不唯一。
这样应该如何合并?谢谢您!
二维码

扫码加我 拉你入群

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

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

2013-1-4 22:53:09
有没有其他限制条件,比如buyer_price中的date和这里的annoucement_date
二维码

扫码加我 拉你入群

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

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

2013-1-4 23:12:56
ziyenano 发表于 2013-1-4 22:53
有没有其他限制条件,比如buyer_price中的date和这里的annoucement_date
没有,buyer_price中的date是股票的每个交易日,annoucement_date是公告日,我需要将两张表合并在一起,计算两个日期之间差了多少天。一个股票可以有多个事件公告日,所以第一个表stkcd不唯一,一个股票每天都要交易,所以,第二个表stkcd不唯一。这样可以在sas中实现吗?谢谢您!
二维码

扫码加我 拉你入群

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

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

2013-1-4 23:23:53
以这个股票为例,匹配出来时这个结果
stkcd    date            annoucement_date
000001 1998-08-20  1998-09-20
000001 1998-08-20   2002-03-20
000001 1998-08-21   2002-03-20
000001 1998-08-21   1998-09-20
需要修正吗
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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