我有一个包含 2 个日期(开始日期和结束日期)和持续时间(结束日期 - 开始日期)的项目列表。我想将它们分成垃圾箱以显示每个垃圾箱中“活动项目”的数量,即如果开始日期<=垃圾箱日期和结束日期>垃圾箱日期,则该项目应计入垃圾箱。
Item StartDate EndDate Duration
Machine1 2005/01/21 2011/03/29 2258
Machine2 2004/05/12 2012/05/08 2918
Machine3 2004/10/15 2005/09/10 330
Machine4 2004/08/30 2011/08/02 2528
Machine5 2005/06/06 2010/12/03 2006
Machine6 2004/05/11 2007/03/17 1040
Machine7 2005/08/09 2011/05/30 2120
Machine8 2005/01/06 2012/06/07 2709
Machine9 2005/06/13 2008/08/28 1172
Machine10 2005/06/28 2010/04/08 1745
Machine11 2004/11/09 2007/05/14 916
Machine12 2005/05/26 2012/09/16 2670
Machine13 2004/05/28 2009/06/09 1838
Machine14 2005/01/06 2012/05/25 2696
Machine15 2005/08/20 2012/02/11 2366
Machine16 2004/08/02 2011/10/23 2638
Machine17 2004/08/10 2009/03/15 1678
Machine18 2005/05/08 2006/04/17 344
Machine19 2005/08/26 2006/07/24 332
Machine20 2004/03/30 2006/05/07 768
我想产生的 Bin 计数:
2004/01/01 0
2005/01/01 9
2006/01/01 19
2007/01/01 16
2008/01/01 14
2009/01/01 13
2010/01/01 11
2011/01/01 9
2012/01/01 5
2013/01/01 0
如您所见,箱的总数不等于项目总数,正如您对传统直方图所期望的那样。
我可以用一些冗长的代码来做到这一点,但我确信一定有一些捷径,使用 cut 或 split。根据我上面的定义,我知道 bin 标签被关闭了一个,但现在让我们忽略它。