SAS,按行和列求和

时间:2018-04-26 19:32:07

标签: sas

我想为数据集做一些总和计算。挑战是我需要通过ID执行行和和列Sum。以下是示例。

data have;
input ID var1 var2;
datalines;

1 1 1 
1 3 2 
1 2 3 
2 0 5 
2 1 3 
3 0 1 
;
run;

data want;
input ID var1 var2 sum;
datalines;

1 1 1 12
1 3 2 12
1 2 3 12
2 0 5 9
2 1 3 9
3 0 1 1
;
run;

2 个答案:

答案 0 :(得分:1)

使用SQL很酷,但SAS有很好的数据步骤!

proc sort data=have; by id; run;
data result;
   set have;
   by id;
   retain sum 0;
   if first.id then sum=0;
   sum=sum+sum(var1,var2);
   if last.id then output;
run;

proc sort data=result; by id; run;
data want;
   merge have result;
   by id;
run;

您将决定使用什么......

答案 1 :(得分:0)

使用SQL一步完成所有操作。仅按link分组,但在列选择中保留IDvar1。这将在var2中创建相同的数据。

want