我每年有几段时间,其中零日是特定的一天。我需要创建一个列表,列出期间开始和结束之间的所有日期及其相关日期。
这是一个例子: 开课日期(08APR2016) 零日(2016年5月1日) 结束日期(04Aug2016)
列表如下所示:
Day Date
-37 08APR2016
-36 09APR2016
.
.
0 01MAY2016
1 02May2016
.
.
94 04AUG2016
我不确定如何编写执行此操作所需的SAS代码,我们将不胜感激。
我目前正在通过创建一个带有 N 的id变量来实现它,该变量从开始日期到结束日期进行计数。对于每个列表,我然后添加正确的数字,使我想要的日期为零。所以在上面的例子中,例如我会为第一个做 N -38,然后从那里算起来。
然而,在为多个列表执行此操作时会变得混乱,我希望有一种快速的方法可以使某一天为零,然后倒数到第一天,然后再转发到最后一天。
答案 0 :(得分:0)
你所要求的是非常直截了当的。你应该尝试一些东西,看看哪些有效,哪些无效。
data want;
retain day date;
keep day date;
format date date9.;
startDate = '08APR2016'd;
endDate = '04AUG2016'd;
zeroDate = '01MAY2016'd;
do i = startDate to endDate;
day = i - zeroDate;
date = i;
output;
end;
run;