按 ID 和变量求和

问题描述 投票:0回答:1

如何通过 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 的第一次出现/位置。

提前谢谢您

sas
1个回答
0
投票

试试这个

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;
© www.soinside.com 2019 - 2024. All rights reserved.