全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2797 5
2013-01-18
我有一张表形式如下:
id        amount
001     100
003     200
005     500
009     700
001     400
005     600
如上所示,id中有重复的记录,现在我想实现的结果是
id        amount
001     500
003     200
005     1100
009     700
就是把id相同的金额汇总,记录只出现一条,怎么操作啊?求!



二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-18 12:19:50
data demo;
input  id     amount;
datalines;
001     100
003     200
005     500
009     700
001     400
005     600
;

proc sql;
  select id ,sum(amount) as sum_amount
  from demo
  group by id;
quit;
二维码

扫码加我 拉你入群

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

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

2013-1-18 12:25:16
/*or do it in data step*/

proc sort data=demo;
  by id;
run;

data want;
    set demo;  
    by id;
if first.id then sum_amount=0;
   sum_amount+amount;
if last.id;
run;
二维码

扫码加我 拉你入群

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

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

2013-1-18 12:29:42
data a;
input id $ amount;
datalines;
001     100
003     200
005     500
009     700
001     400
005     600
;
run;

proc sort data=a;
        by id;
run;

data b;
        set a(rename=(amount=amount1));
        by id;
        if first.id then amount=0;
        retain amount;
        amount=sum(amount,amount1);
        if last.id;
        drop amount1;
run;

运行结果:

id        amount
001     500
003     200
005     1100
009     700
二维码

扫码加我 拉你入群

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

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

2013-1-18 22:18:58
data tmp;
input id $ amount;
cards;
001     100
003     200
005     500
009     700
001     400
005     600
;
run;
proc sql;
select id,  sum(amount) as sum
from tmp
group by id
;
quit;
二维码

扫码加我 拉你入群

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

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

2013-1-24 16:41:03
谢谢楼上三位,帮助很大!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群