楼主: zhx7asuka
4671 6

[问答] sas 如何算观测值的前三行数据和后三行数据之和的平均值 [推广有奖]

  • 0关注
  • 2粉丝

本科生

0%

还不是VIP/贵宾

-

威望
0
论坛币
18556 个
通用积分
14.0421
学术水平
2 点
热心指数
5 点
信用等级
2 点
经验
2868 点
帖子
66
精华
0
在线时间
49 小时
注册时间
2014-9-2
最后登录
2016-2-2

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求大神帮忙,需要算观测值的前三行和后三行之和的平均值,前三行取值可以用lag解决,但是后三行如何处理不得其解?例如下表:观测值=(576+589+650+642+613+590)/6, 如何编辑SAS code 获得观测值的数值呢?(有很多这种观测值需要计算,有没有一个code可以达成以上目的)多谢啦!
行数 数值
1 576
2 589
3 650
4 观测值
5 642
6 613
7 590



二维码

扫码加我 拉你入群

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

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

关键词:观测值 平均值 code COD ODE 平均值 如何

沙发
learsaas 发表于 2015-4-3 14:38:04 |只看作者 |坛友微信交流群
前三行都可以用lag解决了,后三行嗨。。。。。。,隐忍而解啊,要懂得举一反三,从上往下和从下往上,换个对立的视角而已。。。。

使用道具

藤椅
teqel 发表于 2015-4-5 10:21:57 |只看作者 |坛友微信交流群
point?

使用道具

板凳
teqel 发表于 2015-4-6 01:51:55 |只看作者 |坛友微信交流群
  1. data a;
  2. input num aa;
  3. cards;
  4. 1 222
  5. 2 333
  6. 3 444
  7. 4 555
  8. 5 666
  9. 6 777
  10. 7 888
  11. 8 999
  12. ;

  13. data b (keep=i sum);
  14.         do i=4 to nb-3;
  15.                         sum=0;

  16.                         do j=i-3 to i-1;
  17.                                 set a nobs=nb point=j;
  18.                                 sum+aa;
  19.                         end;
  20.                         do j=i+1 to i+3;
  21.                                 set a nobs=nb point=j;
  22.                                 sum+aa;
  23.                         end;
  24.                         sum=sum/6.0;

  25.                         output;
  26.                 end;
  27.                 stop;
  28. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
zhx7asuka + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

报纸
zhx7asuka 学生认证  发表于 2015-4-6 05:59:19 |只看作者 |坛友微信交流群
teqel 发表于 2015-4-6 01:51
太赞了!

使用道具

地板
teqel 发表于 2015-4-6 20:20:56 |只看作者 |坛友微信交流群
改一下,保留原始变量
  1. data a;
  2. input num aa;
  3. cards;
  4. 1 222
  5. 2 333
  6. 3 444
  7. 4 555
  8. 5 666
  9. 6 777
  10. 7 888
  11. 8 999
  12. ;

  13. data b (keep=num aa sum);
  14. do i=4 to nb-3;
  15.         set a point=i;
  16.     sum=0;

  17.     do j=i-3 to i-1;
  18.             set a(rename=(num=num1 aa=aa1)) nobs=nb point=j;
  19.             sum+aa1;
  20.     end;
  21.     do j=i+1 to i+3;
  22.             set a(rename=(num=num1 aa=aa1)) point=j;
  23.             sum+aa1;
  24.     end;
  25.     sum=sum/6.0;

  26.     output;
  27. end;
  28. stop;
  29. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
zhx7asuka + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

7
zhx7asuka 学生认证  发表于 2015-4-12 10:44:58 |只看作者 |坛友微信交流群
teqel 发表于 2015-4-6 20:20
改一下,保留原始变量

使用道具

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

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

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

GMT+8, 2024-5-6 23:27