全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学
9285 16
2010-07-21
现有数据如下:
   cusip   date               return
10002     01JAN1988     0.025
10002     02JAN1988     0.01
  。          。
  。          。
  。          。
10003      01JAN1988     0.007
  。          。
10004       01JAN1988     0.008



cusip是有10000家firm,date从1988年1月1日到2000年12月31日,return是股票交易日的日return,所以日期并不是连续的
我现在想做的事情是将一家公司每一交易日之后整整一年的股票收益率求出来,即:对第一个观测值来说,求year_return=sum(return)where  01JAN1988<=date<31DEC1988,对第二个观测值来说是year_return=sum(return)where  02JAN1988<=date<01JAN1989,后面的依次求出
本人sas初学,请教各位大侠,如何用proc expand做出来呢?
二维码

扫码加我 拉你入群

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

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

全部回复
2010-7-21 23:15:47
为什么非得用proc expand?你要的东西最简单的办法是用proc sql.

参见 http://www.pinggu.org/bbs/viewth ... p;page=1#pid6330159

proc sql;
  create table AnnualRets as
select distinct cusip, year(date) as year, exp(sum(log(1+return)))-1 as ret_annual
  from dailydata
  group by cusip, calculated year;
quit;
二维码

扫码加我 拉你入群

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

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

2010-7-22 09:36:50
douweifeng 发表于 2010-7-21 22:58
现有数据如下:
   cusip   date               return
10002     01JAN1988     0.025
10002     02JAN1988     0.01
  。          。
  。          。
  。          。
10003      01JAN1988     0.007
  。          。
10004       01JAN1988     0.008



cusip是有10000家firm,date从1988年1月1日到2000年12月31日,return是股票交易日的日return,所以日期并不是连续的
我现在想做的事情是将一家公司每一交易日之后整整一年的股票收益率求出来,即:对第一个观测值来说,求year_return=sum(return)where  01JAN1988
Proc expand is a very interesting procedure. Hopefully someone can offer the help.
二维码

扫码加我 拉你入群

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

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

2010-7-22 15:06:36
非常感谢你的帮助,不过有两个问题:
1、我想要计算的是每一个观测值之后一年的sum_return,并非是某一年的,比如说如果第十二个观测值的date是02MAR1988,那我想要的return就是从02MAR1988到01MAR1989的sum_return;
2、因为我的数据有3千万条,如果用sql的话可能要跑上一两天的时间,机器不是很高端,所以希望能通过proc expand来解决
希望得到你的回复,多谢!! 2# BraveMadMan
二维码

扫码加我 拉你入群

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

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

2010-7-22 20:05:04
不好意思,没看仔细。推荐你写个宏,滚动提取数值,然后用proc sql求和。

用proc expand作滚动求和,难点在于你“每年”的观测值不一样。proc expand要求一个指定的观测值。比如,从月到年容易,因为每年12个月是固定的。我想应该可以用宏让这个观测值变动起来,不过这样就太麻烦了。

另外有个问题:你的数据是美国的吗?为什么不用PERMNO而用CUSIP呢?
二维码

扫码加我 拉你入群

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

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

2010-7-23 02:30:22
1# douweifeng
复制代码
差不多5千万的数据,用时大概十分钟。我的问题是无法解决闰年的问题。希望有人帮助。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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