楼主: lingsuifengdong
1436 2

[问答] 求助大家一个关于sas面板数据累计求和的问题 [推广有奖]

  • 1关注
  • 1粉丝

已卖:2份资源

硕士生

72%

还不是VIP/贵宾

-

威望
0
论坛币
912 个
通用积分
0.6000
学术水平
16 点
热心指数
16 点
信用等级
16 点
经验
2367 点
帖子
102
精华
0
在线时间
287 小时
注册时间
2009-1-10
最后登录
2023-6-30

楼主
lingsuifengdong 发表于 2014-3-4 16:06:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
附加中的数据为面板数据,我想针对每一家公司的C值依次求t-2,t-1,t这3年的和,该如何实现呢?
二维码

扫码加我 拉你入群

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

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

关键词:面板数据 求助大家 如何实现 如何

沙发
bjpucl 发表于 2014-3-4 16:57:37
假设导入的数据集为rawdata,如下代码应该可以你想要的功能:

  1. proc sort data=rawdata; by stknme descending year; /*对每个公司按照year降序排列*/
  2. run;

  3. %let t=2005; /*指定t为哪一年*/

  4. data data1(keep=stkcd stknme c_sum);
  5. set rawdata;
  6. retain c_sum 0;
  7. if year=&t then do;
  8. c_sum+c;
  9. end;
  10. else if year=(&t-1) then do;
  11. c_sum+c;
  12. end;
  13. else if year=(&t-2) then do;
  14. c_sum+c;
  15. output rawdata1; /*求和结果输出到指定数据集*/
  16. c_sum=0;
  17. end;
  18. run;
复制代码

藤椅
mingfeng07 学生认证  发表于 2014-3-4 17:29:39
首先自行导入数据,建立数据集a,包含四个变量:stkcd,stknme,year,c.
我是这样理解你的意图:
  1. proc sort data=a;by stkcd;run;
  2. data b;
  3. set a;
  4. by stkcd;
  5. sum_c=c+lag(c)+lag(lag(c));
  6. if year<2003 then sum_c=0;
  7. run;
复制代码
欢迎扫一扫我头像关注, 不定期分享SAS技术知识。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-28 11:26