¿Cómo obtendrías los medios por hora para múltiples columnas de datos, durante un período diario, y mostrarías los resultados de doce "Hosts" en el mismo gráfico? Es decir, me gustaría graficar cómo se ve un período de 24 horas, para una semana de datos. El objetivo final sería comparar dos conjuntos de estos datos, antes y después de los muestreos.
dates Host CPUIOWait CPUUser CPUSys
1 2011-02-11 23:55:12 db 0 14 8
2 2011-02-11 23:55:10 app1 0 6 1
3 2011-02-11 23:55:09 app2 0 4 1
He podido ejecutar xyplot (CPUUser ~ date | Host) con buen efecto. Sin embargo, en lugar de mostrar cada fecha de la semana, me gustaría que el eje X sea las horas del día.
Intentar obtener estos datos en un objeto xts produce errores como "order.by requiere un objeto basado en el tiempo apropiado"
Aquí hay un str () del marco de datos:
'data.frame': 19720 obs. of 5 variables:
$ dates : POSIXct, format: "2011-02-11 23:55:12" "2011-02-11 23:55:10" ...
$ Host : Factor w/ 14 levels "app1","app2",..: 9 7 5 4 3 10 6 8 2 1 ...
$ CPUIOWait: int 0 0 0 0 0 0 0 0 0 0 ...
$ CPUUser : int 14 6 4 4 3 10 4 3 4 4 ...
$ CPUSys : int 8 1 1 1 1 3 1 1 1 1 ...
ACTUALIZACIÓN: Solo para referencia futura, decidí ir con un diagrama de caja, para mostrar tanto la mediana como los "valores atípicos".
Esencialmente:
Data$hour <- as.POSIXlt(dates)$hour # extract hour of the day
boxplot(Data$CPUUser ~ Data$hour) # for a subset with one host or for all hosts
xyplot(Data$CPUUser ~ Data$hour | Data$Host, panel=panel.bwplot, horizontal=FALSE)
Gracias
str()
el data.frame.
xts()
porque ladates
columna es un factor.