매일 여러 데이터 열에 대한 시간별 평균을 구하고 동일한 그래프에 12 개의 "호스트"에 대한 결과를 어떻게 표시합니까? 즉, 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
.