如何通过 ID 对一组变量求和?
假设有以下内容:
data DB;
input ID :$20. Value1 Value2 Value3;
cards;
0001 33 . .
0001 . 22 .
0001 . . .
0001 . . 6
0002 . 32 .
0002 . . 4
0003 . 2 90
0003 3 . .
;
有办法获得以下内容吗?
data DB1;
input ID :$20. Value1 Value2 Value3 Total;
cards;
0001 33 . . 61
0001 . 22 . .
0001 . . . .
0001 . . 6 .
0002 . 32 . 36
0002 . . 4 .
0003 . 2 90 95
0003 3 . . .
;
总和应放置在每个 ID 的第一次出现/位置。
提前谢谢您
试试这个
data db1;
do until (last.ID);
set DB;
by ID;
array v{*} Value:;
s + sum(of v[*]);
end;
do _N_ = 1 by 1 until(last.ID);
set DB;
by ID;
Total = .;
if _N_ = 1 then Total = s;
output;
end;
drop s;
run;