【发布时间】:2015-03-06 06:29:55
【问题描述】:
我有一个如下所示的数据集,最后一列是所需的输出。
DX_CD AID date2 <count.occurences.1000.days>
1 272.4 1649 2007-02-10 0 or N/A
2 V58.67 1649 2007-02-10 0<- (excluding the same day). OR 1
3 787.91 1649 2010-04-14 0
4 788.63 1649 2011-03-10 1
5 493.90 4193 2007-09-13 0 or N/A #new AID
6 787.20 6954 2010-02-25 0 or N/A #new AID
.....
我想通过 AID 计算列 (count.occurences.1000.days) 来计算 X 天内(例如 X=1000)内先前出现的次数。
第一个值为 0 或 N/A,因为在 AID=1649 的记录 #1 之前没有先前的记录。第二个值为 0,因为此事件与记录 #1 发生在同一天。第三个值为 0,因为存在早于 2010-04-14 的记录,但它们超过了 1000 天。第四个值是 1,因为记录 #3 发生在 1000 天内。 AID=4193 和 AID=6954 的逻辑相同
有人可以提供一个想法,最好是矢量化的吗?
【问题讨论】:
-
我们在新列中计算了之前出现的次数?你能整理一下上面的示例表吗?
-
这是一个有趣的问题。如果您清理数据并提供一种复制粘贴的方式来创建示例,将会有所帮助。
-
您可能想在此处调整
foverlaps解决方案stackoverflow.com/revisions/28578977/1 -
我修改了描述。谢谢。