SAS:对从 1 到列指定的值的行进行循环求和

SAS: Do loop summing rows from 1 to value specified by a column

我正在处理一个保险覆盖数据集,其中包含第 1 天到第 365 天的覆盖状态 1(是)或 0(否)。我需要创建一个变量,它是 1 的总和,但仅限于某一天,它又由另一个变量 num days 指定。在下面的数据集中,我想创建到 "NumDays" 指定位置的天数总和。因此,A 的总和值为 4、B - 2、C - 2、D-4 和 E-1。有什么想法可以实现吗?谢谢!

ID  Day2    Day3    Day4    Day5    Day6    NumDays Sum
A   1       1       1       0        1      5        ?
B   1       0       1       1        1      3        ?
C   1       1       1       1        1      2        ?
D   1       1       1       1        1      4        ?
E   1       1       1       1        1      1        ?

这很简单。创建一个包含所有日期的数组,然后循环遍历第一个 NumDays,将它们相加。

data want;
set have;
array d[*] day:;

do i=1 to NumDays;
    if i <= dim(d) then
        sum = sum(sum,d[i]);
end;

drop i;
run;

正如@Reeza 在评论中所说,请展示您的尝试。 SO 不是代码编写服务。先试一试,然后问你是否卡住了。我给你这个。 ;-)