Organizando variables categoricas para una grafica en R.

Hace algunos días se me pidió realizar un an analisis historico-comparativo acerca del número de peticiones que recibe un servidor cloud aloja aplicaciones ERP. No está de más mencionar que el estudio debería ser tan minucioso como la fuente de información( en este caso,  herramientas de monitoreo ) lo permitiera.

Para mi suerte, el conjunto de datos(dataset) recaudado por dichas herramientas de monitoreo estaba conformado por tan solo 23 variables y 5890 observaciones. Por esta razón, no fue necesario realizar demasiada limpieza y/o procesamiento a los datos antes de analizarlos con la ayuda de una gráfica.

Debido a que los datos con los que trabajé son confidenciales, he preparado un conjunto de datos un tanto similar al original con el propósito de llevar a cabo el presente ejercicio. Cabe reiterar que ambos, dataset y código fuente utilizados en esta práctica están disponibles para su descarga al final de esta entrada. Ejecutando el codigo a continuacion:

# Cargar librerias
library( package = 'ggplot2' )
# Leer dataset
d_historico <- read.table( file = 'datafile'
, header = T
, sep = ','
, colClasses = c('character','character','numeric')
)
# Crear grafica con ggplot
g_historico <- ( ggplot( data = d_historico
, aes( x = dia
, y = peticiones
, group = semana
, col = semana
)
)
+ geom_line()
+ geom_point()
+ theme_bw()
+ theme( legend.title = element_blank()
, axis.ticks = element_blank()
, legend.position = 'none'
)
+ labs( x = 'Dia'
, y = 'Peticiones'
)
)
# Mostrar grafica
plot( x = g_historico )
view raw Historico.R hosted with ❤ by GitHub

Se obtiene la siguiente gráfica, que, aun y cuando pudiera parecer adecuada para realizar un análisis comparativo, no posee un orden cronológico correcto:

1

No obstante, esto puede arreglarse fácilmente utilizando factores, es decir, objetos que representan variables categóricas( nominales u ordinales ) y que entre sus funcionalidades, ofrecen la posibilidad de manipular el orden en que deben ser analizados y/o presentados sus valores.  Ejecutando el siguiente código y  el código para crear la gráfica:

# Convirtiendo la variable dia a factor para asi manipular el orden en que se debe visualizada la variable dia
d_historico$dia <- factor( x = d_historico$dia
, levels = c('Lunes','Martes','Miercoles','Jueves','Viernes', 'Sabado','Domingo')
)
# Opcional: Revisando la estructura del factor
str( object = d_historico$dia )
view raw Historico2.R hosted with ❤ by GitHub

Da como resultado una gráfica con un orden sucesivo, lista para ser examinada:

2

# Cargar librerias
library( package = 'ggplot2' )
# Leer dataset
d_historico <- read.table( file = 'datafile'
, header = T
, sep = ','
, colClasses = c('character','character','numeric')
)
# Crear grafica con ggplot
g_historico <- ( ggplot( data = d_historico
, aes( x = dia
, y = peticiones
, group = semana
, col = semana
)
)
+ geom_line()
+ geom_point()
+ theme_bw()
+ theme( legend.title = element_blank()
, axis.ticks = element_blank()
, legend.position = 'none'
)
+ labs( x = 'Dia'
, y = 'Peticiones'
)
)
# Mostrar grafica
plot( x = g_historico )

view raw
Historico.R
hosted with ❤ by GitHub

# Cargar librerias
library( package = 'ggplot2' )
# Leer dataset
d_historico <- read.table( file = 'datafile'
, header = T
, sep = ','
, colClasses = c('character','character','numeric')
)
# Crear grafica con ggplot
g_historico <- ( ggplot( data = d_historico
, aes( x = dia
, y = peticiones
, group = semana
, col = semana
)
)
+ geom_line()
+ geom_point()
+ theme_bw()
+ theme( legend.title = element_blank()
, axis.ticks = element_blank()
, legend.position = 'none'
)
+ labs( x = 'Dia'
, y = 'Peticiones'
)
)
# Mostrar grafica
plot( x = g_historico )

view raw
Historico.R
hosted with ❤ by GitHub

# Cargar librerias
library( package = 'ggplot2' )
# Leer dataset
d_historico <- read.table( file = 'datafile'
, header = T
, sep = ','
, colClasses = c('character','character','numeric')
)
# Crear grafica con ggplot
g_historico <- ( ggplot( data = d_historico
, aes( x = dia
, y = peticiones
, group = semana
, col = semana
)
)
+ geom_line()
+ geom_point()
+ theme_bw()
+ theme( legend.title = element_blank()
, axis.ticks = element_blank()
, legend.position = 'none'
)
+ labs( x = 'Dia'
, y = 'Peticiones'
)
)
# Mostrar grafica
plot( x = g_historico )

view raw
Historico.R
hosted with ❤ by GitHub

Deja un comentario