我今天在编程方面不是很有经验,但在过去很远的地方做了一些工作。lubridate - 计算每个间隔的重叠间隔
我们支持共享车,每辆车都有预约开始日期时间和结束日期时间。每个预订的start-dt和end-dt全部为00或30分钟,持续时间> = 30分钟。
现在我们有很多车在同一个地方,我想看看有多少辆车在重叠时间进行预订。
为此,我在两次之间建立一个时间间隔为30分钟的时间序列。
library(dplyr)
TimeSlot =
tibble(seq(
from = as.POSIXlt("2013-07-01"),
to = as.POSIXlt("2013-12-01"),
1800))
TimeSlot <- cbind(TimeSlot, c(0L))
colnames(TimeSlot) <- c("Slot", "count")
TimeSlot$count <- as.integer(TimeSlot$count)
然后,对于每个时间段,我会计算与该时间段重叠的预订。此代码的工作原理:
for(j in 1:length(TimeSlot$count))
{
for (i in 1:length(bookings$start)) {
if ((TimeSlot[j, "Slot"] >= bookings[i, "start"]) &&
(TimeSlot[j, "Slot"] < bookings[i, "end"])) {
TimeSlot[j, "count"] = TimeSlot[j, "count"] + 1
# rk_j = j
}
}
}
我得到一个结果。
这需要一段时间,我认为,这不是很像r。现在,在我开始优化这些代码之前,如果有类似r的方式来解决我的问题,我会问更多有经验的人的社区。
问候 Ruediger
我该怎么做? –
你可以检查答案左边的绿色箭头,谢谢! – PoGibas