Как создать дополнительные строки для каждого дня между двумя датами в SAS?
Я ищу код SAS для создания "новых" строк для каждого дня между двумя датами. Например, у меня есть оригинальный набор данных, содержащий:
Num. StartDate EndDate Tag
5 13JUN2017 25NOV2017 1
6 1JAN2017 4MAR2017 5
...
и т.д., и мне нужно перенести этот набор данных с
Num. Day TAG
5 13JUN2017 1
5 14JUN2017 1
...
5 25NOV2017 1
6 1JAN2017 5
...
6 4MAR2017 5
...
Кто-нибудь может помочь? Заранее спасибо!
1 ответ
Попробуйте использовать do while
data have;
input num startdate enddate tag;
informat startdate date9. enddate date9.;
format startdate date9. enddate date9.;
cards;
5 13jun2017 25nov2017 1
6 01jan2017 04mar2017 5
;
run;
data want;
set have;
format next_due_date date9.;
next_due_date = startdate;
do while (enddate > next_due_date);
next_due_date = intnx("day",next_due_date,1);
output;
end;
run;
Дайте мне знать в случае каких-либо запросов.