【发布时间】:2015-02-17 20:59:08
【问题描述】:
在 SAS 中,我的 ID、Date1 和 Date2 按 ID、Date1 和 Date2 升序排序。根据需要,排序会导致缺少的 Date2 值位于它们所在的位置。如何计算具有有效日期的行之间的 Date2 差异并获得 D_Date2 中显示的结果?
字面意思是:BY ID,跳过 Date2 中缺失的日期值,读取其下的下一个有效日期,从较晚的日期中减去较早的日期,并将差值作为 D_Date2 写入具有有效 Date2 值的行.谢谢。
Obs ID Date1 Date2 D_Date2
1 1 20090815 20090818 .
2 1 20090815 20090818 0
3 1 20090816 20090820 2
4 1 20090816 . .
5 1 20090816 20090820 0
6 2 20090101 . .
7 2 20090105 20090105 .
8 2 20090105 . .
9 2 20090105 20090106 1
10 2 20090105 20090110 4
11 3 20080720 . .
12 3 20080720 20080917 .
13 3 20080720 20080918 1
14 3 20081010 . .
15 3 20081010 20080925 7
16 3 20081010 20080925 0
【问题讨论】:
-
感谢您的纠正!