如何在 SAS 中的两个日期之间的每一天创建额外的行? [英] How to create additional rows for each day between two dates in SAS?
本文介绍了如何在 SAS 中的两个日期之间的每一天创建额外的行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找 SAS 代码来为两个日期之间的每一天创建新"行.例如.我的原始数据集包含:
I'm looking for the SAS code to create "new" rows for each days between two dates. E.g. I have the original dataset containing:
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
...
有人可以帮忙吗?提前致谢!
Can anyone help? Thanks in advance!
推荐答案
尝试使用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;
如有任何疑问,请告诉我.
Let me know in case of any queries.
这篇关于如何在 SAS 中的两个日期之间的每一天创建额外的行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文