Как получить график событий в месяц на R

Я новичок в R.

У меня есть метки времени в списке в этом стиле:

 [1] "2011-10-04 17:23:28 CEST" "2011-10-04 17:26:13 CEST" "2011-10-05 16:17:34 CEST" "2011-10-07 09:59:37 CEST"

Теперь я хочу построить график, который показывает мне, сколько событий происходит в январе, феврале и так далее.

Каждая временная метка представляет одно событие, и могут быть месяцы без события (это должно быть показано как 0)

1 ответ

Решение

Я бы поместил вектор раз в столбец data.frame. В приведенных ниже примерах приведены тысячи временных меток со случайным временем между текущим временем и двумя годами позже.

dat = data.frame(timestamp = Sys.time() + sort(round(runif(1000, (24*3600), (2*365*24*3600)))))

Следующим шагом является создание нового столбца, который определяет, в каком месяце и году находится отметка времени:

dat$month = strftime(dat$time, "%b")
dat$year = strftime(dat$time, "%Y")

Теперь мы можем посчитать временные метки за месяц для каждого года, используя count от plyr пакет.

library(plyr)
timestamps_month = count(dat, vars = c("month","year"))

И создайте гистограмму с помощью ggplot2:

library(ggplot2)
ggplot(data = timestamps_month) + geom_bar(aes(x = month, y = freq, fill = year), stat="identity", position = "dodge")

Посмотрите этот SO пост для примера того, как выглядит результирующий график:

Как создать гистограмму в R с данными времени CSV?

Другие вопросы по тегам