楼主: wsddzr
2304 6

循环求平均数 [推广有奖]

  • 3关注
  • 1粉丝

本科生

86%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
0
学术水平
3 点
热心指数
4 点
信用等级
0 点
经验
1035 点
帖子
62
精华
0
在线时间
158 小时
注册时间
2013-3-10
最后登录
2021-3-20

楼主
wsddzr 发表于 2015-7-8 11:02:53 |AI写论文
5论坛币
有这么一组数 25
23
27
31
32
35
40
38
38
33
27
21
19
24
17
15
14
19
23
22
我想计算
1-4,2-5,3-6一直到13-16这13组平均数
以及5-8,6-9,7-10一直到17-20这13组平均数
1-4的意思是25,23,27,31
2-5的意思是23,27,31,32
以此类推
我用宏写了一个满足要求的,但是我知道那样特别的没有效率
想知道如何用proc iml 或者array的方法来满足我的要求
谢谢各位了!!




关键词:平均数 求平均 array 有效率 ARR 平均数 如何

沙发
何必不淡定。 发表于 2015-7-8 11:02:54
  1. data a ;
  2.     input x;
  3.     cards;
  4. 25
  5. 23
  6. 27
  7. 31
  8. 32
  9. 35
  10. 40
  11. 38
  12. 38
  13. 33
  14. 27
  15. 21
  16. 19
  17. 24
  18. 17
  19. 15
  20. 14
  21. 19
  22. 23
  23. 22
  24. ;
  25. run;
  26. proc transpose data=a out=a1;
  27.     var x;
  28. run;
  29. data b (keep=i j s);  
  30.     if _n_=1 then do;
  31.         set a1;
  32.         array p[*] _numeric_;
  33.     end;
  34.         set a ;
  35.     do j= 1 to 17;
  36.         s=0;
  37.         do i = j to j+3;
  38.             s=s+p[i];
  39.             output;
  40.         end;
  41.     end;
  42. run;
  43. data c ;
  44.     set b;
  45.     mean=s/4;
  46.     if last.j;
  47.     by j notsorted;
  48.         proc sort nodupkey;by j;
  49. run;
复制代码

藤椅
mingfeng07 学生认证  发表于 2015-7-8 14:52:12
  1. data b;
  2.    merge a a(firstobs=2 rename=(x=x_1)) a(firstobs=3 rename=(x=x_2))
  3.          a(firstobs=4 rename=(x=x_3)) a(firstobs=5 rename=(x=x_4));
  4.    miss=cmiss(of x:);
  5.    if miss=0 then do;
  6.       mean=mean(of x:);output;
  7.    end;
  8.    drop miss x_:;
  9. run;
复制代码
已有 1 人评分学术水平 热心指数 收起 理由
wsddzr + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

板凳
Tigflanker 发表于 2015-7-8 17:34:16
有个mutilabel的东西貌似可以用一下

报纸
wsddzr 发表于 2015-7-8 19:14:45
mingfeng07 发表于 2015-7-8 14:52
谢谢! 学习了

地板
teqel 发表于 2015-7-10 22:54:33
mingfeng07 发表于 2015-7-8 14:52
set statement is better than merge?

7
mingfeng07 学生认证  发表于 2015-7-10 23:56:41
teqel 发表于 2015-7-10 22:54
set statement is better than merge?
那这样岂不是得写5个set语句?

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

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