我有一个数据集,其中当月和上月有 2 列。我只需要对这两列执行求和操作。问题在于每个月更新列的名称都会发生变化。如何在 SAS 中自动执行此过程?
当前数据集
ID 九月 十月
1 23 12
2 31 19
3 37 21
下个月数据集
ID 十月 十一月
1 17 21
2 12 23
3 55 21
如何每月自动对两列求和?
我有一个数据集,其中当月和上月有 2 列。我只需要对这两列执行求和操作。问题在于每个月更新列的名称都会发生变化。如何在 SAS 中自动执行此过程?
当前数据集
ID 九月 十月
1 23 12
2 31 19
3 37 21
下个月数据集
ID 十月 十一月
1 17 21
2 12 23
3 55 21
如何每月自动对两列求和?
如果总是有三列,第一列是 ID,第二和第三列是您希望求和的值,请使用数组...
数据mysum; 设置我的数据; 数组 n{*} _NUMERIC_ ; /* ID VAR1 VAR2 */ /* 求和第 2 和第 3 个元素 */ month_sum = sum(n{2},n{3}) ; 跑 ;
如果您正在聚合列:
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;