SAS: сделать цикл суммирования строк от 1 до значения, указанного в столбце - PullRequest
0 голосов
/ 31 августа 2018

Я работаю с набором данных страхового покрытия, который содержит статус покрытия 1 (да) или 0 (нет) в течение дня с 1 по 365. Мне нужно создать переменную с суммой 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        ?

1 Ответ

0 голосов
/ 31 августа 2018

Это довольно просто. Создайте массив всех дней, затем просмотрите первые 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 в комментарии, пожалуйста, покажите, что вы пытались сделать. ТАК не сервис написания кода. Сначала попробуйте, а затем спросите, не застряли ли вы. Я дам тебе это. ; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...