คุณจะได้รับค่าเฉลี่ยรายชั่วโมงสำหรับคอลัมน์ข้อมูลหลายรายการเป็นระยะเวลารายวันอย่างไรและแสดงผลลัพธ์สำหรับ "โฮสต์" สิบสองรายการในกราฟเดียวกัน นั่นคือฉันต้องการกราฟว่าระยะเวลา 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:
'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: สำหรับการอ้างอิงในอนาคตฉันตัดสินใจใช้ boxplot เพื่อแสดงค่ามัธยฐานและ 'ค่าผิดปกติ'
เป็นหลัก:
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
คอลัมน์เป็นปัจจัย