Як би ви отримали погодинний засіб для декількох стовпців даних за щоденний період та показували результати для дванадцяти "хостів" в одному графіку? Тобто, я хотів би накреслити, як виглядає 24-годинний період, на тижні даних. Можливою метою буде порівняння двох наборів цих даних до та після вибірки.
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
Мені вдалося запустити xyplot (CPUUser ~ дати | Хост) з хорошим ефектом. Однак, замість того, щоб показувати кожну дату на тижні, я хотів би, щоб вісь X була годиною дня.
Спроба отримати ці дані в об’єкт xts призводить до помилок, таких як "order.by вимагає відповідного об'єкту на основі часу".
Ось str () кадру даних:
'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 ...
ОНОВЛЕННЯ: Тільки для подальшого ознайомлення я вирішив поїхати з боксертом, щоб показати як медіану, так і «людей, що вижили».
По суті:
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)
Спасибі
str()
на data.frame.
xts()
оскількиdates
стовпець є фактором.