楼主: idiele
1660 3

[原创博文] 循环计算均值 [推广有奖]

  • 1关注
  • 0粉丝

本科生

29%

还不是VIP/贵宾

-

威望
0
论坛币
22 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
1692 点
帖子
77
精华
0
在线时间
33 小时
注册时间
2009-3-7
最后登录
2017-5-31

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
proc sort data=ashr.asharemr out=mr;by stkcd trdmnt;run;

data ashr.mr;
set mr;
by stkcd;
lagretn=0;
do i=1 to 11;
lagretn+mretnd;
if last.stkcd then leave;
end;
averetn=lagretn/11;
keep stkcd trdmnt lagretn averetn mretnd mretwd i;
where trdmnt>=200010;
run;

无法做到当距last.stkcd少于11个值时,就应该停止计算均值,而不是直到last.stkcd才停止。该如何修改呢?
(数据形式见下一贴)
二维码

扫码加我 拉你入群

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

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

关键词:stkcd share Leave Where Last where 如何

沙发
idiele 发表于 2012-7-22 11:39:49 |只看作者 |坛友微信交流群
stkcd   trdmnt         retn               11-month_ave
1         200010        0.002             第一支股票从该月起11个月的平均回报率
1         200011        -0.003            第一支股票从该月起11个月的平均回报率
1         200012
1         200101
1
1
1
2        200010                               第二支股票从该月起11个月的平均回报率
2        200011
2        200012
2
3                                                   第三支股票从该月起11个月的平均回报率
3
3
3

使用道具

藤椅
idiele 发表于 2012-7-22 11:50:02 |只看作者 |坛友微信交流群
而且计算得到的均值也不正确。

请高手帮编下程序!

使用道具

板凳
idiele 发表于 2012-7-22 16:03:15 |只看作者 |坛友微信交流群
问题已解决!
移动平均问题,the trick is 运用LAG 创建新变量.

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-10-6 12:33