sas - 使用 SAS 对多列求和

标签 sas

我想使用 SAS 添加多个列。

数据有:

D C1 C2 C3 C4 C5.....   
J 01 02 00 04 15 
F 05 00 09 11 00  
M 12 14 88 00 00
A 55 03 00 00 00  
M 67 00 00 00 00

我不想这样

数据需求;

Set Have;  
N1 = C1;  
N2 = C1+C2;  
N3 = C1+C2+C3;  
N4 = C1+C2+C3+C4; 
N5 = C1+C2+C3+C4+C5;
Keep N:    
Run; 

希望我的 table 看起来像这样。

想要数据表

D N1  N2  N3  N4  N5.....   
J 01  03  03  07  22 
F 05  05  14  25  00  
M 12  26  114 00  00
A 55  58  00  00  00  
M 67  00  00  00  00

请注意,我会有很多列,而且数量会有所不同。我需要一个动态代码,它会自动计算列数并执行计算。我需要底部三角形保持 0,而不是继续加起来。如果像示例中的 (J,C3) 那样存在零值,它仍然需要执行。我也需要它来保持秩序。无法更改数据的顺序。

最佳答案

sas sum 函数可以采用这样的变量范围:

data work;
    c1=1;
    c2=2;
    c3=3;
    n=sum(of c1-c3);
run;

关于sas - 使用 SAS 对多列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35339920/

相关文章:

date - SAS 创建节日标志矩阵

sas - 为什么这不是 SAS 中的语法错误?

sas - Proc SQL 缺失值赋值

c# - 使用 C# 浏览 SAS 项目的 OutputDatasets

sas - 在 SAS 的 INCLUDE 命令中使用 LET 变量?

SAS合并两个具有相同变量名的数据集

multithreading - 如何在AMD处理器(32核)和Windows 10 Pro上调用SAS Base(https ://www. sas.com/)中的多线程?

arrays - 任意 365 天期间的总和值

sas - SAS 存储过程的 XML 语法

SAS:一次性为不同日期和表名称动态创建表