我正在使用的保险范围数据集包含第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 ?
答案 0 :(得分:2)
这很简单。创建所有日期的数组,然后循环遍历它们的前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不是代码编写服务。请先尝试一下,然后询问是否卡住。我给你这个。 ;-)