【发布时间】:2015-02-15 22:10:09
【问题描述】:
我有一个 data.frame 有两列指示某个事件的开始和结束日期,如下所示:
[,1] [,2]
[1,] 14260 14317
[2,] 13515 13694
[3,] 13696 13878
[4,] 13879 14060
[5,] 14061 14243
[6,] 14244 14426
我想获取一个向量,其中包含每天(在此 data.frame 中从最小值到最大值的时间段内)当天发生的事件数。
我想 for 循环将是解决此问题的合乎逻辑的方法: 对于某一行中的每两个元素,我将包含当前每天事件计数的预定义向量的值增加一个(显然只考虑 [,2] 和 [,1] 之间的天数)
但是我想找到一个在 R 中运行效率更高的代码,我尝试使用 apply 函数已经有一段时间了,但似乎找不到可行的方法。 .
最后,我希望能找到这样的东西:
x = [1,1,..., 2,2,2, ..., 2, 1, 1, 1]
其中 x[1] 是分析的第一天发生的事件数 (考虑上述示例时的第 13515 天)
谢谢!
【问题讨论】:
-
看看
data.table和函数foverlaps中的滚动连接。 -
请参阅相关 QA 的 this answer。