Как создать дополнительные строки для каждого дня между двумя датами в 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;

Дайте мне знать в случае каких-либо запросов.

Другие вопросы по тегам