如何在 SAS 中的两个日期之间的每一天创建额外的行? [英] How to create additional rows for each day between two dates in SAS?

查看:16
本文介绍了如何在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆