我想在'V1'列中的每个唯一值的'Date'列中添加连续日期。下面解释我在做什么和我得到什么错误(无法计算日期)。如何在一列SAS EG表格中插入其他列中每个var的连续日期范围
我有一个表,如下所示:
V1 Date
MS000328 04JAN16
MS000328 08JAN16
MS000328 12JAN16
MS000328 08FEB16
MS000328 09FEB16
MS000328 12MAR16
MS000328 15MAR16
MS000328 16APR16
MS000328 17APR16
MS000329 02JAN16
MS000329 16JAN16
MS000329 29JAN16
MS000329 03FEB16
MS000329 19FEB16
MS000329 21MAR16
MS000329 31MAR16
MS000329 11APR16
MS000329 19APR16
我想要的是这样的:
V1 Date
MS000328 01JAN16
MS000328 02JAN16
MS000328 03JAN16
MS000328 04JAN16
MS000328 05JAN16
MS000328 06JAN16
MS000328 07JAN16
MS000328 08JAN16
.
.
.
.
.
MS000329 01JAN16
MS000329 02JAN16
MS000329 03MAR16
.
.
MS000329 01APR16
MS000329 02APR16
.
.
MS000329 01MAR16
MS000329 02MAR16
.
.
MS000329 01APR16
MS000329 02APR16
.
.
.
我使用的follwing代码....
data want1 (keep = V1 Date);
set have;
by V1;
run;
data want;
set want1;
format Date date.;
Date = "1JAN2016"d;
do i = 0 to 365;
Date+1;
output;
end;
run;
结果日志显示错误...'文件空间不足'
我做错了什么?
am我认为'proc expand'只能填写数据中第一个和最后一个之间的缺失日期,即它不能在第一个日期之前或在最后一个日期之后? – Longfish
@Keith我认为你是正确的(它只会插入范围内),尽管通过为两个开始/结束日期添加单行很容易修复。我认为PROC EXPAND的价值主要在于处理数据集上的其他变量(例如,继续推进更容易)以及它能够计算值而不仅仅是填充;如果这只是一个行的问题,上面的过程可能就像开始/结束问题一样好。 – Joe
@Joe感谢您的帮助。我们拥有SAS EG和其他SAS产品的许可:) – ZeekDSA