【发布时间】:2015-11-23 09:30:43
【问题描述】:
我有一个问题,我知道如何在 SQL 中解决,但在 R 中却不优雅地。这似乎是通过dpylr 轻松解决的任务,但我正在寻找输入。 p>
我有一个与 开始 和 结束 时间相关的位置列表。这些日期标记了该位置活跃的时期。
我想用COUNT(active locations) 为每一年输出一个任意间隔之间的所有年份的表格。如果位置在该年的任何时间处于活动状态,则该位置是活动的,并且不应多次计算。
示例
考虑以下数据:
╔════════════╦═════════════════════╦═════════════════════╗
║ LocationID ║ StartDate <POSIXlt> ║ EndDate <POSIXlt> ║
╠════════════╬═════════════════════╬═════════════════════╣
║ 0 ║ 2000-01-01 00:00:00 ║ 2001-01-01 12:00:00 ║
║ 1 ║ 2000-01-01 00:00:00 ║ 2010-01-01 12:00:00 ║
║ 2 ║ 2009-01-01 12:00:00 ║ 2015-06-01 00:00:00 ║
║ 0 ║ 2001-12-01 00:00:00 ║ 2010-01-01 12:00:00 ║
╚════════════╩═════════════════════╩═════════════════════╝
2000 年到 2015 年的期望输出是:
╔══════╦═══════════════╗
║ Year ║ Count(active) ║
╠══════╬═══════════════╣
║ 2000 ║ 2 ║
║ 2001 ║ 2 ║
║ 2002 ║ 2 ║
║ 2003 ║ 2 ║
║ 2004 ║ 2 ║
║ 2005 ║ 2 ║
║ 2006 ║ 2 ║
║ 2007 ║ 2 ║
║ 2008 ║ 2 ║
║ 2009 ║ 3 ║
║ 2010 ║ 3 ║
║ 2011 ║ 1 ║
║ 2012 ║ 1 ║
║ 2013 ║ 1 ║
║ 2014 ║ 1 ║
║ 2015 ║ 1 ║
╚══════╩═══════════════╝
任何关于最佳方法的指导将不胜感激。谢谢!
【问题讨论】: