1/12/2008
SAS Tips &Tricks:按组求累加值
按组求累加值:原数据由下面给出:
data a;
input id sum;
cards;
1 4
1 3
2 5
2 7
2 9
3 6
3 6
;
上面id分为1、2、3,要求按每组求累加值,即生成一个新变量cum,它看起来是这样的:
id sum cum
1 4 4
1 3 7
2 5 5
2 7 12
2 9 21
3 6 6
3 6 12
方案一:
proc sort data=a;
by id;
run;
data b;
set a;
by id;
retain cum;
if first.id then cum=sum ;
else cum=cum+sum;
run;
方案二(方案一的小改进):
proc sort data=a;
by id;
run;
data b;
set a;
by id;
if first.id then cum=sum ;
else cum+sum;
run;