全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2476 7
2013-11-12
下面的数据是个股的月收益率,我想每支股票求当年5月至次年4月的月收益率之和,应该怎么做呢?比如代码是000002的股票,其1995年的年收益率应当是1995年5月至1996年4月月收益率之和。谢谢!
QQ截图20131112202836.png





二维码

扫码加我 拉你入群

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

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

全部回复
2013-11-13 08:49:42
如果数据没有缺失的话,可以先构建个变量,区分不同的时期

data want;
set have;
retain id 0;
if month(date) eq 5 then id+1;
run;

然后在proc means中by id就可以了
二维码

扫码加我 拉你入群

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

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

2013-11-13 16:08:57
为了避免有日期缺失和排序错乱的情况,建议将日期归属到特定的时间区间,如2009.05-2010.04
复制代码
二维码

扫码加我 拉你入群

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

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

2013-11-14 13:03:25
用proc means data=数据集 sum;
var 月利率;
where 1995年5月<= 日期<= 1996年4月;
run;
的语句可以不?
初学者,请各位大侠指导
二维码

扫码加我 拉你入群

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

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

2013-11-14 17:04:01
believe448 发表于 2013-11-14 13:03
用proc means data=数据集 sum;
var 月利率;
where 1995年5月
'where' is not a valid statement in proc means.
playmore's method is good ,it is easy to learn.
二维码

扫码加我 拉你入群

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

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

2013-11-16 22:23:44
moyunzheng 发表于 2013-11-13 16:08
为了避免有日期缺失和排序错乱的情况,建议将日期归属到特定的时间区间,如2009.05-2010.04
能麻烦你详细解释一下SQL中间那段程序吗?我没太看懂。
而且用in(1,2,3,4)的话也可能出问题。比如一家公司是1996年8月才上市,那我当年的收益是不能累积的,应该到1997年4月才开始累积收益。那我应该怎样控制呢?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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