Данные времени биннинга в R

У меня есть данные о времени отправления и прибытия птиц (например, прибытие 17:23:54). Я хотел бы объединить данные в 2-часовые временные интервалы (например, 0:00:00-1:59:59... и т. Д.), Итого 12 суммарных интервалов. Данные в конечном итоге перейдут в гистограмму с временными интервалами на оси x и подсчитать на оси y. Будет ли моя лучшая ставка?

Спасибо

1 ответ

Решение

Просто используйте ?cut так как у него есть метод для ?cut.POSIXt дата / время. Например:

x <- as.POSIXct("2016-01-01 00:00:00", tz="UTC") + as.difftime(30*(0:47),units="mins")
cut(x, breaks="2 hours", labels=FALSE)
# or to show more clearly the results:
data.frame(x, cuts = cut(x, breaks="2 hours", labels=FALSE))

#                     x cuts
#1  2016-01-01 00:00:00    1
#2  2016-01-01 00:30:00    1
#3  2016-01-01 01:00:00    1
#4  2016-01-01 01:30:00    1
#5  2016-01-01 02:00:00    2
#6  2016-01-01 02:30:00    2
#7  2016-01-01 03:00:00    2
#8  2016-01-01 03:30:00    2
#9  2016-01-01 04:00:00    3
#10 2016-01-01 04:30:00    3
# ...

Если ваши данные - просто строки, то сначала вам нужно выполнить преобразование. Времена будут назначены на текущий день, если вы не укажете конкретный день.

as.POSIXct("17:23:54", format="%H:%M:%S", tz="UTC")
#[1] "2016-07-13 17:23:54 UTC"
Другие вопросы по тегам