0

我有一个数据集,其中当月和上月有 2 列。我只需要对这两列执行求和操作。问题在于每个月更新列的名称都会发生变化。如何在 SAS 中自动执行此过程?

当前数据集

ID 九月 十月

1 23 12
2 31 19
3 37 21

下个月数据集

ID 十月 十一月

1 17 21
2 12 23
3 55 21

如何每月自动对两列求和?

4

2 回答 2

2

如果总是有三列,第一列是 ID,第二和第三列是您希望求和的值,请使用数组...

数据mysum;
  设置我的数据;
  数组 n{*} _NUMERIC_ ; /* ID VAR1 VAR2 */

  /* 求和第 2 和第 3 个元素 */
  month_sum = sum(n{2},n{3}) ;
跑 ;
于 2013-11-07T11:45:53.287 回答
0

如果您正在聚合列:

proc sql noprint;
select
cat('sum(', trim(name), ') as month', put(monotonic(), 1. -L)) into :sum_statement separated  by ', '
from dictionary.columns
where libname = 'WORK'
and memname = 'SOMETABLE'
and upcase(name) ne 'ID'
;
quit;

%put &sum_statement;

proc sql;
create table sum as
select &sum_statement from WORK.SOMETABLE
;
quit;
于 2013-11-07T11:49:55.150 回答