Цикл для измерения разницы во времени между двумя значениями - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь рассчитать коэффициент занятости в комнатах в час, я хочу сделать это, проверяя, сколько минут в час занято комната. Время занятости - это когда столбец «занято» равен 1 и изменяется на 0. Мне удалось вычислить минуты занятости, используя:

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

И моя таблица выглядит следующим образом:

screenshot table

Итак, я имею в виду следующее: чтобы рассчитать коэффициент занятости в час, я добавляю все занятое время (difftime для каждого 'busy = 1') в этом часе, делим его на60, умножить на 100%.

Пример:

30 июля 2017 года:

Показатель занятости с 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%

Etc. и т.д.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Вы можете использовать функцию задержки вместо цикла.

library(dplyr)

df = df %>% 
    mutate(Date_Time_diff = difftime(Date_Time, lag(Date_Time), units = 'mins'))
0 голосов
/ 15 октября 2019

Учитывая, что ваша картинка представляет одну "комнату", вы просто хотите использовать diff(yourdata$Date_Time), и у вас будет вектор занятого времени;не занятое время;и т.д.

...