我正在使用一个保险范围数据集,其中包含第 1 天到 365 天的覆盖范围状态 1(是(或 0(否(。我需要创建一个变量是 1s 的总和,但只到某一天,这又由另一个变量 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;