楼主: 水浣兰
6180 3

求问如何求滚动标准差 [推广有奖]

  • 0关注
  • 0粉丝

小学生

71%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
46 点
帖子
3
精华
0
在线时间
14 小时
注册时间
2012-10-30
最后登录
2016-5-27

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
SAS新手。有问题请教。先谢过各位!
问题如下。分id计算滚动标准差,对每个date,计入其前两年和本年的数据。
date              id     num      std
1992             a       1          .
1993             a       2          .
1994             a       3        std of num in 1992 1993 1994
1995             a       4        std of num in 1993 1994 1995
1996             a       5        std of num in 1994 1995 1996
1997             a       6        std of...
1998             a       4        std of...
1992             b       1          .
1993             b       2          .
1994             b       3         std of num in 1992 1993 1994
1995             b       4         std of num in 1993 1994 1995
1996             b       1         std of num in 1994 1995 1996
1997             b       2         std of...
  ......
想了很久,实在是不会,又急着要用,烦请各位大神指教,感激不尽!
二维码

扫码加我 拉你入群

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

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

关键词:标准差 date 感激不尽 Std NUM 标准差 如何

  1. data one;
  2. input date id $ num;
  3. cards;     
  4. 1992             a       1         
  5. 1993             a       2         
  6. 1994             a       3        
  7. 1995             a       4      
  8. 1996             a       5   
  9. 1997             a       6  
  10. 1998             a       4      
  11. 1992             b       1     
  12. 1993             b       2      
  13. 1994             b       3   
  14. 1995             b       4   
  15. 1996             b       1         
  16. 1997             b       2      
  17. ;;;
  18. proc sort data=one out=two;
  19. by id;
  20. run;

  21. data two(keep=date id num std);
  22. set two;
  23. by id;
  24. array com{0:2} com1-com3;
  25. retain com:;

  26. if first.id then do;
  27. call missing(of com:);
  28. count=0;
  29. end;

  30. count+1;
  31. com{mod(count,3)}=num;
  32. if nmiss(of com:)=0 then do;
  33. std=std(of com:);
  34. end;
  35. output;

  36. run;

复制代码

使用道具

藤椅
水浣兰 发表于 2015-10-17 03:35:58 |只看作者 |坛友微信交流群
sas那个石家庄人 发表于 2015-10-16 08:26
明白了!太感谢了!!!

使用道具

板凳
ghxghxghxghx 学生认证  发表于 2020-3-27 19:47:19 |只看作者 |坛友微信交流群
sas那个石家庄人 发表于 2015-10-16 08:26
请问call的作用是什么呢

使用道具

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

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

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

GMT+8, 2024-4-24 19:53