【发布时间】:2018-06-11 18:44:14
【问题描述】:
我有与一个或多个 START/END 日期对相关联的唯一标识符的观察。这些观察在日期范围内按月按 ID 迭代。一个唯一 ID 和类别的示例,长度被截断。
ID START END MONTH CAT.A
10056 2004-01-08 2005-01-07 Jan 2004
10056 2004-01-08 2005-01-07 Feb 2004
10056 2004-01-08 2005-01-07 Mar 2004
...
10056 2004-01-08 2005-01-07 Nov 2004
10056 2004-01-08 2005-01-07 Dec 2004
10056 2004-01-08 2005-01-07 Jan 2005
--------------------------------------
10056 2006-11-28 2008-02-20 Nov 2006
10056 2006-11-28 2008-02-20 Dec 2006
10056 2006-11-28 2008-02-20 Jan 2007
...
10056 2006-11-28 2008-02-20 Dec 2007
10056 2006-11-28 2008-02-20 Jan 2008
10056 2006-11-28 2008-02-20 Feb 2008
--------------------------------------
10056 2010-01-30 2011-02-03 Jan 2010
10056 2010-01-30 2011-02-03 Feb 2010
10056 2010-01-30 2011-02-03 Mar 2010
...
10056 2010-01-30 2011-02-03 Dec 2010
10056 2010-01-30 2011-02-03 Jan 2011
10056 2010-01-30 2011-02-03 Feb 2011
我正在寻找的解决方案将累积计算CAT.A 的每个唯一事件发生。在第一个日期范围内,CAT.A 将是 1,在第二个日期范围内将 CAT.A 增加到 2,在第三个日期范围内增加到 3。此计数器对于此 ID 是唯一的,否则为 NA
ID START END MONTH CAT.A
10056 2004-01-08 2005-01-07 Jan 2004 1
10056 2004-01-08 2005-01-07 Feb 2004 1
10056 2004-01-08 2005-01-07 Mar 2004 1
...
10056 2004-01-08 2005-01-07 Nov 2004 1
10056 2004-01-08 2005-01-07 Dec 2004 1
10056 2004-01-08 2005-01-07 Jan 2005 1
--------------------------------------
10056 2006-11-28 2008-02-20 Nov 2006 2
10056 2006-11-28 2008-02-20 Dec 2006 2
10056 2006-11-28 2008-02-20 Jan 2007 2
...
10056 2006-11-28 2008-02-20 Dec 2007 2
10056 2006-11-28 2008-02-20 Jan 2008 2
10056 2006-11-28 2008-02-20 Feb 2008 2
--------------------------------------
10056 2010-01-30 2011-02-03 Jan 2010 3
10056 2010-01-30 2011-02-03 Feb 2010 3
10056 2010-01-30 2011-02-03 Mar 2010 3
...
10056 2010-01-30 2011-02-03 Dec 2010 3
10056 2010-01-30 2011-02-03 Jan 2011 3
10056 2010-01-30 2011-02-03 Feb 2011 3
该数据集有数百万个其他唯一 ID 和 11 个其他类别,但如果我能找到该子集的解决方案,我应该能够将其应用于整个数据集。
我找到了可以让我计算ID、START、END 的唯一组合总数的解决方案,但只有当 A 属于一个新的观察值时,它才有助于在每个观察中增加一次独特的START,END 事件。
我一直在使用 data.table 和 lubridate。
【问题讨论】:
-
您实际尝试过使用 data.table 和 lubridate 做什么?您能否提供数据的代码示例/可重现版本?
-
@DavidKlotz 我只是提到了它,也许是无关紧要的,作为我在处理数据集时一直在使用的主要库,不一定针对这个问题。下面 Michael Ohlrogge 的答案应该有效。我可能已经盯着我的数据集很久了,以至于我没有考虑将其简化为如下所示的更简单的示例。明天我回到办公室并回复时我会试一试。
标签: r count data.table unique