全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1743 5
2009-09-18
想请教下如下数据
id                 a      b   c
001              1     2    3
001              2     3   4
002              2     5    1
002              3      2   1
怎么样把 相同id的1行和2行加总,3 行和4 行加总?
得到 id   a    b   c
         001  3  5   7
         002  5  7  2
谢谢指教
二维码

扫码加我 拉你入群

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

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

全部回复
2009-9-18 20:37:25
会的说下啊,,处理一组数据时遇到这样的问题,不知道怎么整了
在线等待,谢谢
二维码

扫码加我 拉你入群

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

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

2009-9-18 20:49:09
cxsyb 发表于 2009-9-18 20:37
会的说下啊,,处理一组数据时遇到这样的问题,不知道怎么整了
在线等待,谢谢
data x;
input id $ a      b   c@;
cards;
001              1     2    3
001              2     3   4
002              2     5    1
002              3      2   1
;run;
proc sql noprint;
create table final as
select id,sum(a) as a,sum(b) as b,
sum(c) as c from x group by id;quit;
二维码

扫码加我 拉你入群

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

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

2009-9-19 10:02:07
楼上的程序比较简洁,我来段复杂的吧,也是数据量比较大的时候能用的上。
data raw;
input id $3.  a b c;
cards;
001   1   2   3
001   2   3   4
002   2   5   1
002   3   2   1
;
proc sort data=raw;
by id;
data result(drop=a b c i);
set raw;
by id;
retain a1 b1 c1 0;
array aa(3) a b c;
array bb(3) a1 b1 c1;
do i=1 to 3;
bb(i)+aa(i);
if first.id then bb(i)=aa(i);
end;
if last.id;
run;
二维码

扫码加我 拉你入群

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

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

2009-9-19 10:16:12
感谢两位
谢谢
二维码

扫码加我 拉你入群

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

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

2009-10-12 00:55:22
data aa;
input id $6.0 a b c;
infile datalines truncover;
datalines;
001              1     2    3
001              2     3  4
002              2     5    1
002              3      2   1
; run;
data b;
do _n_=1 by 1 until(last.id);
set aa;
by id;
if first.id then do; suma=0; sumb=0 ; sumc=0;end;
suma+a;
sumb+b;
sumc+c;
end;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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