Wie würden Sie stündliche Mittelwerte für mehrere Datenspalten für einen täglichen Zeitraum erhalten und die Ergebnisse für zwölf "Hosts" in derselben Grafik anzeigen? Das heißt, ich möchte für Daten im Wert von mehreren Wochen grafisch darstellen, wie ein 24-Stunden-Zeitraum aussieht. Das letztendliche Ziel wäre es, zwei Sätze dieser Daten vor und nach der Probenahme zu vergleichen.
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
Ich konnte xyplot (CPUUser ~ dates | Host) mit gutem Effekt ausführen. Anstatt jedoch jedes Datum in der Woche anzuzeigen, möchte ich, dass die X-Achse die Stunden des Tages darstellt.
Der Versuch, diese Daten in ein xts-Objekt zu übertragen, führt zu Fehlern wie "order.by erfordert ein geeignetes zeitbasiertes Objekt".
Hier ist ein str () des Datenrahmens:
'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 ...
UPDATE: Nur zum späteren Nachschlagen habe ich mich für einen Boxplot entschieden, um sowohl den Median als auch die "Ausreißer" anzuzeigen.
Im Wesentlichen:
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)
Vielen Dank
str()
den data.frame an.
xts()
weil diedates
Spalte ein Faktor ist.