Come otterresti le medie orarie per più colonne di dati, per un periodo giornaliero, e mostrerai i risultati per dodici "Host" nello stesso grafico? Cioè, vorrei rappresentare graficamente l'aspetto di un periodo di 24 ore, per una settimana di dati. L'obiettivo finale sarebbe quello di confrontare due serie di questi dati, prima e dopo i campionamenti.
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
Sono stato in grado di eseguire xyplot (CPUUser ~ date | Host) con buoni risultati. Tuttavia, piuttosto che mostrare ogni data della settimana, vorrei che l'asse X fosse l'ora del giorno.
Cercare di ottenere questi dati in un oggetto xts genera errori come "order.by richiede un oggetto basato sul tempo appropriato"
Ecco uno str () del frame di dati:
'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 ...
AGGIORNAMENTO: Solo per riferimento futuro, ho deciso di andare con un diagramma a scatole, per mostrare sia la mediana, sia i "valori anomali".
Essenzialmente:
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)
Grazie
str()
data.frame.
xts()
perché ladates
colonna è un fattore.