楼主: BraveMadMan
1485 2

滚动计数求助 [推广有奖]

  • 1关注
  • 6粉丝

已卖:97份资源

讲师

16%

还不是VIP/贵宾

-

威望
0
论坛币
966 个
通用积分
6.3763
学术水平
26 点
热心指数
42 点
信用等级
10 点
经验
7812 点
帖子
300
精华
0
在线时间
552 小时
注册时间
2005-8-11
最后登录
2021-5-20

楼主
BraveMadMan 发表于 2010-11-25 11:08:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请各位高手帮忙。

我有数据如以下结构: 公司代码(permno),派息日期(exdt),是否按时(pay)。我想计算包括当前派息日期在内的前6个季度,每个公司按时派息的次数(也就是pay的简单求和)。请问如何计算。具体数据见附件 have.rar (5.5 KB) 本附件包括:
  • have.sas7bdat


现有数据:
ID  exdt        pay
1  19860207 1
1 19860529  1
1 19860821  0
1 19861106  1
2  19860207 1
2 19860529  0
2 19860821  0
2 19861106  1

要得到的数据:
ID  exdt        pay sum
1  19860207 1    1
1 19860529  1    2
1 19860821  0    2
1 19861106  1    3
2  19860207 1    1
2 19860529  0    1  
2 19860821  0    1
2 19861106  1    2


我现在的程序如下,可是产生不了我想要的结果:

  1. proc sql;
  2.   create table test as
  3.   select a.*,  sum(a.pay) as sum
  4.   from temp as a
  5.   where INTNX('quarter', exdt,-6) <= exdt
  6.   group by permno, exdt
  7.   order by permno, exdt;
  8. quit;
复制代码
二维码

扫码加我 拉你入群

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

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

关键词:proc sql Quarter Select Create Table 求助 计数 滚动

Don't get lost in technical details. What is the big picture?

沙发
BraveMadMan 发表于 2010-11-25 11:24:59
注:我要的不是最近六个观测值的求和,因为有些公司在过去的六个季度内 可能只有五个或四个季度有观测值。
Don't get lost in technical details. What is the big picture?

藤椅
BraveMadMan 发表于 2010-11-25 12:30:01
整明白了
  1. proc sql;
  2.   create table test as
  3.   select distinct a.*,  sum(b.pay) as sum
  4.   from have as a, have as b
  5.   where INTNX('quarter', a.exdt,-6) < b.exdt <a.exdt and a.permno=b.permno
  6.   group by a.permno, a.exdt
  7.   order by a.permno, a.exdt;
  8. quit;
复制代码
Don't get lost in technical details. What is the big picture?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-13 09:50