我有以下dataframes之间:R:序列天的日期
AllDays
2012-01-01
2012-01-02
2012-01-03
...
2015-08-18
Leases
StartDate EndDate
2012-01-01 2013-01-01
2012-05-07 2013-05-06
2013-09-05 2013-12-01
我想要做的是,在数据帧ALLDAYS每个日期,计算但在效果上的租约数量。例如如果有4个租赁开始日期< = 2015-01-01和结束日期> = 2015-01-01,那么我想在该数据框中放置一个4。
我有以下代码
for (i in 1:nrow(leases))
{
occupied = seq(leases$StartDate[i],leases$EndDate[i],by="days")
occupied = occupied[occupied < dateOfInt]
matching = match(occupied,allDays$Date)
allDays$Occupancy[matching] = allDays$Occupancy[matching] + 1
}
其工作,但因为我有大约5000租约,它需要大约1.1秒。有没有人有更高效的方法,需要更少的计算时间? 感兴趣的日期只是当前日期,并且仅用于确保它不会计入将来的租约日期。
是存储为日期变量的所有日期吗?似乎是'foverlaps'的东西,但我仍然不知道如何使用该功能:\ – MichaelChirico