Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何在SAS中的两个日期之间每天创建额外的行?_Loops_Date_Sas_Transform - Fatal编程技术网

Loops 如何在SAS中的两个日期之间每天创建额外的行?

Loops 如何在SAS中的两个日期之间每天创建额外的行?,loops,date,sas,transform,Loops,Date,Sas,Transform,我正在寻找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 1J

我正在寻找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
...
有人能帮忙吗?
提前谢谢

尝试使用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;

如果有任何疑问,请告诉我。

已经找到了!把这个发现放在下面的答案中,并接受它。那么,我们就不会在期待有人仍然需要帮助的情况下进入这个问题。请这样做。其他寻找它的人可能也会感谢您。因为SAS将日期存储为整数,所以您只需使用一个简单的
do next\u due\u date=startdate to enddate循环。但是,如果您想按日期间隔而不是按天递增,则do-while循环非常有用。如果我想按日期间隔而不是按天递增,即使这样,我也可以通过简单地给出“by”语句来使用“do”。“do&do-while”可用于两个查询(按天递增以及按时间间隔递增)。是吗?@pinegulf很乐意帮忙!!