Pregunta

Soy un novato en R.

Tengo marcas de tiempo en una lista en este estilo:

 [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"

Ahora quiero trazar un gráfico que me muestra cuántos eventos ocurren en enero, febrero, etc.

Cada marca de tiempo representa un evento y puede haber meses sin un evento (que debe mostrarse como 0)

¿Fue útil?

Solución

Pondría el vector de tiempos en una columna de un Data.Frame. Los datos de ejemplo a continuación tienen mil marcas de tiempo con un tiempo aleatorio entre la hora actual y dentro de dos años.

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

El siguiente paso es crear una nueva columna que identifique en qué mes y año se encuentra la marca de tiempo:

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

Ahora podemos contar las marcas de tiempo por mes para cada año usando count desde el plyr paquete.

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

Y cree el histograma con GGPLOT2:

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

Vea esto, así que publique para un ejemplo de cómo se ve la trama resultante:

¿Cómo crear histograma en R con datos de tiempo CSV?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top