Como você obteria meios horários para várias colunas de dados, por um período diário, e mostraria resultados para doze "hosts" no mesmo gráfico? Ou seja, eu gostaria de representar graficamente como é um período de 24 horas, por uma semana de dados. O objetivo final seria comparar dois conjuntos desses dados, antes e depois das amostragens.
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
Consegui executar o xyplot (CPUUser ~ datas | Host) com bom efeito. No entanto, em vez de mostrar cada data da semana, eu gostaria que o eixo X fosse as horas do dia.
Tentar inserir esses dados em um objeto xts resulta em erros como "order.by requer um objeto baseado em tempo apropriado"
Aqui está um str () do quadro de dados:
'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 ...
ATUALIZAÇÃO: Apenas para referência futura, eu decidi ir com um boxplot, para mostrar a mediana e os 'outliers'.
Essencialmente:
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)
obrigado
str()
o data.frame.
xts()
porque adates
coluna é um fator.