繁体   English   中英

循环测量两个值之间的时间差

[英]Loop to measure difference in time between two values

我试图计算每小时房间的入住率,我想通过检查一个房间一小时内被占用多少分钟来做到这一点。 占用时间是当列“占用”为 1 并更改为 0 时。我已成功使用以下方法计算占用分钟数:

Timediff <- Test %>% arrange(Date_Time)%>% mutate(difftime= difftime(lead(Date_Time),Date_Time, units = "mins"))

我的桌子现在看起来像这样:

截图表

所以我想到的是:为了计算每小时的占用率,我将在那一小时内的所有占用时间(每个“占用 = 1”的差异时间)相加,除以 60,乘以 100%。

例子:

2017 年 7 月 30 日:

11.00 至 12.00 入住率 (11.59) = (14+1)/60*100%

12:00 到 13:00 (12.59) = (14+5)/60*100%

13:00 到 14:00 (13.59) = (11+14)/60*100%

等等等等。

我怎样才能做到这一点?

考虑到您的图片代表一个“房间”,您只想使用diff(yourdata$Date_Time)并且您将拥有一个占用时间的向量; 不占用时间; 等等

您可以使用滞后 function 而不是循环。

library(dplyr)

df = df %>% 
    mutate(Date_Time_diff = difftime(Date_Time, lag(Date_Time), units = 'mins'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM