В течение нескольких месяцев я отмечал, что я проснулся каждое утро. Теперь у меня есть база данных, которая содержит время суток в формате 24 часа, например. 2014-11-29 05:23:00
, который я могу украсить чем-то вроде 04:23
.Как анализировать время в R
Я хочу рассказать о распределении времени моего пробуждения. Ось x будет временем дня, ось y будет частотой. Все очень просто, за исключением:
То, что я сейчас ломаю себе голову, это то, как обращаться с шкалой по оси Х. Так как 60 минут до часа, я мог бы:
Создать шкалу минут в день, где время 4:23 будет преобразован в минуту 263. Это было бы легко на моих расчетах, но неинтуитивный для чтения. Конечно, я мог легко преобразовать эти минуты.
Используйте стоминутный час. Поскольку ось на моем графике будет помечена только каждый час, это будет легко подсчитать и легко прочитать. Но если я хочу увидеть средние или другие рассчитанные данные в 60-минутном времени, мне придется переконфигурировать его, что может вызвать неточности. Но я думаю, это было бы незначительным.
Позвольте R обрабатывать раз.
Поскольку единственное, что я не знаю, как сделать это третий вариант, на мой вопрос:
Как я могу использовать время как данные в R? И что это лучший способ сделать это?
Вот пример вектор времени, если вы хотите попробовать что-то:
t <- c("00:13:00", "00:30:00", "00:36:00", "00:45:00", "00:48:00", "01:08:00", "01:14:00", "01:15:00", "01:25:00", "02:06:00", "02:07:00", "02:22:00", "02:23:00", "02:36:00", "02:37:00", "02:55:00", "03:08:00", "03:10:00", "03:11:00", "03:13:00", "03:15:00", "03:23:00", "03:35:00", "03:55:00", "03:57:00", "03:58:00", "04:03:00", "04:06:00", "04:15:00", "04:21:00", "04:21:00", "04:22:00", "04:43:00", "04:48:00", "04:51:00", "04:58:00", "05:00:00", "05:02:00", "05:03:00", "05:17:00", "05:25:00", "05:34:00", "05:38:00", "05:45:00", "05:46:00", "05:50:00", "05:52:00", "06:10:00", "06:11:00", "06:13:00", "06:23:00", "06:26:00", "22:18:00", "23:27:00", "23:40:00", "23:53:00", "23:54:00", "23:58:00")
Я пытался построить времена, используя chron
библиотеку, но по какой-то причине маркировки оси x возвращается к 0 к 1, когда диапазон составляет 24 часа (он показывает времена, когда график составляет всего несколько часов), а функция hist
отказывается использовать любые графические параметры (plot
остается FALSE
, даже когда I explici ждение установить его TRUE
:
library(chron)
t <- times(c("00:13:00", "00:30:00", "00:36:00", "00:45:00", "00:48:00", "01:08:00", "01:14:00", "01:15:00", "01:25:00", "02:06:00", "02:07:00", "02:22:00", "02:23:00", "02:36:00", "02:37:00", "02:55:00", "03:08:00", "03:10:00", "03:11:00", "03:13:00", "03:15:00", "03:23:00", "03:35:00", "03:55:00", "03:57:00", "03:58:00", "04:03:00", "04:06:00", "04:15:00", "04:21:00", "04:21:00", "04:22:00", "04:43:00", "04:48:00", "04:51:00", "04:58:00", "05:00:00", "05:02:00", "05:03:00", "05:17:00", "05:25:00", "05:34:00", "05:38:00", "05:45:00", "05:46:00", "05:50:00", "05:52:00", "06:10:00", "06:11:00", "06:13:00", "06:23:00", "06:26:00", "22:18:00", "23:27:00", "23:40:00", "23:53:00", "23:54:00", "23:58:00"))
hist(t, probability = TRUE, col = "gray")
lines(density(t), col = "blue", lwd = 2)
lines(density(t, adjust = 2), lty = "dotted", col = "darkgreen", lwd = 2)
Warning message:
In hist.default(t, probability = TRUE, col = "gray", plot = FALSE) :
arguments ‘freq’, ‘col’ are not made use of
Во-первых, вы, вероятно, захотите использовать '? Strptime' в R (см. Мой пример) в этих текстовых строках. Secondly..ggplot2 - ваш друг. Это может помочь вам, если вы еще не используете его: http://www.cookbook-r.com/Graphs/Plotting_distributions_(ggplot2)/ –