楼主: 5wangrongliang5
1219 7

SAS疑难 [推广有奖]

  • 3关注
  • 2粉丝

等待验证会员

已卖:113份资源

大专生

51%

还不是VIP/贵宾

-

威望
0
论坛币
145 个
通用积分
0.0600
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
221 点
帖子
24
精华
0
在线时间
71 小时
注册时间
2013-3-28
最后登录
2015-4-20

楼主
5wangrongliang5 发表于 2014-5-12 00:16:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
当a=1,1,1,1,1,2,2,2,2时,b=5,6,7,7,6,1,2,4,5.如何将相同取值的a的前三个值对应的b的值相加,即当a=1时c=5+6+7相加;当a=2时c=1+2+4。麻烦各位高手出手指导...
二维码

扫码加我 拉你入群

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

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

关键词:如何

沙发
zhengbo8 发表于 2014-5-12 03:37:00
排序后,相同取值的a的前三个值对应的b的值相加
还是不排序?
看您的例子,应该是不排序。

藤椅
zhengbo8 发表于 2014-5-12 03:54:42
排序后,分组求前3个值得和。
  1. data x;
  2. input a b;
  3. n=_n_;
  4. datalines;
  5. 1 5
  6. 1 6
  7. 1 7
  8. 1 7
  9. 1 6
  10. 2 1
  11. 2 2
  12. 2 4
  13. 2 5
  14. ;


  15. proc sql noprint;
  16.         create table y as
  17.                 select a,sum(b) as sum from
  18.                         (select *
  19.                                 from x x1
  20.                                 where (
  21.                                         select count(*)
  22.                                                 from x x2
  23.                                                 where (x2.a = x1.a and x2.b <= x1.b)
  24.                                 )<=3
  25.                         )
  26.                 group by a;
  27. quit;
复制代码
已有 1 人评分论坛币 收起 理由
admin_kefu + 100 热心帮助其他会员

总评分: 论坛币 + 100   查看全部评分

板凳
5wangrongliang5 发表于 2014-5-12 19:03:12
zhengbo8 发表于 2014-5-12 03:54
排序后,分组求前3个值得和。
非常感谢您的解答!

报纸
5wangrongliang5 发表于 2014-5-12 20:52:45
zhengbo8 发表于 2014-5-12 03:54
排序后,分组求前3个值得和。
您好!我学SAS没多久,不知道能否加我QQ:1246525573,方便向您请教。谢谢

地板
zhengbo8 发表于 2014-5-12 21:30:02
5wangrongliang5 发表于 2014-5-12 20:52
您好!我学SAS没多久,不知道能否加我QQ:1246525573,方便向您请教。谢谢
没问题。

7
leonkd 在职认证  发表于 2014-5-12 22:37:49
data x;
        input a b;
        datalines;
        1 5
        1 6
        1 7
        1 7
        1 6
        2 1
        2 2
        2 4
        2 5
        ;
run;

data sum;
        set x;
        by a;
        if first.a then do;
                sum=0;
                sort=0;
        end;
       
        sum+b;
        sort+1;
       
        if sort=3 then output;
run;

8
5wangrongliang5 发表于 2014-5-13 02:06:17
leonkd 发表于 2014-5-12 22:37
data x;
        input a b;
        datalines;
谢谢!好方法!

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

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