knitr::opts_chunk$set( collapse = TRUE, comment = "#>", rmarkdown.html_vignette.check_title = FALSE )
knitr::opts_chunk$set(echo = TRUE) library(sensataDataAnalysis) rawMetaDataExample <- sensataDataProg::sensataExample %>% select(`_id`:trialUser.userId) %>% head() rawQ0DataExample <- sensataDataProg::sensataExample %>% select(contains(".q0.")) %>% head() sensataExAnalysis <- sensataDataAnalysis::sensataExAnalysis
Este documento presenta una guía de los paquetes de R utilizados para preparar, limpiar y analizar los datos de encuestas recolectados con la plataforma Sensata. Para eso tenemos una serie de paquetes que preparan los datos y ayudan a hacer más sencillo y uniforme los análisis.
Después de que recolectamos las encuestas en nuestra plataforma, los datos quedan cargados en un servidor (mongoDB). Estos datos quedan un formato poco amigable para el análisis, es un archivo con muchas columnas:
rawMetaDataExample rawQ0DataExample
Normalmente el equipo de data utiliza el paquete sensataDataProg para dejar los datos como los queremos, una fila por individuo y cada columna es una pregunta:
sensataExAnalysis
R nos permite limpiar los datos como queremos, además de crear gráficos cómo nos gustan. Tiene la ventaja de que es freeware, gratis y totalmente customizable para nuestras necesidades. Tenemos dos paquetes que hacen que los procesos que debemos crear siempre sean más sencillos: sensataDataProg y sensataDataAnalysis. El paquete sensataDataProg está ya en versión 1.0.0, es decir es completo. Por el contrario, sensataDataAnalysis aún necesita trabajo.
En esta guía vamos a hablar solo de sensataDataAnalysis, que es el necesario para crear gráficas.
"R es un lenguaje y ambiente de programación para computación estadística y gráficas." Es flexible y altamente extensible, por lo que permite crear "paquetes" para muchas cosas. En sensata usamos el grupo de paquetes tidyverse. Los paquetes añaden funcionalidad adicional a R, y el tidyverse en especial está pensando en hacer la mayoría de las cosas de una manera más consistente y con un lenguaje más sencillo. Pueden aprender más con este libro.
Rstudio es una interfaz gráfica de desarrollo que hace que usar el lenguaje R sea más fácil y amigable. Revisemos cómo funciona Rstudio acá.
(Trucos para ver el historial, para ver el ambiente, ver las gráficas, etc)
Al abrir Rstudio (o R) se carga solo la funcionalidad básica. Para utilizar las funciones sensata necesitamos instalar y cargar el paquete sensataDataAnalysis. Para instalar el paquete de github hay que instalar antes otro paquete, devtools y suele evitar problemas si instalamos antes el tidyverse:
install.packages("devtools") install.packages("tidyverse") devtools::install_github(repo = "https://github.com/SensataUx/sensataDataAnalysis", ref = "main")
Instalar el paquete no implica que esté disponible para usar su funcionalidad. Por eso en el chunk anterior, después de instalar usé devtools::install_github()
, accede al paquete devtools y utiliza la función install_github(). Pero a veces vamos a usar muchas veces distintas funciones de un paquete, para esto es necesario cargarlo. Esto se hace así:
library(sensataDataAnalysis)
Después de esto ya podemos cargar las fuentes y decisiones estéticas que vamos a usar:
#Cargar fuentes font_add_google(name = "Open Sans", family = "Open Sans") font_add_google(name = "News Cycle", family = "News Cycle") font_add_google(name = "Montserrat", family = "montserrat") showtext_auto() # Paleta de colores OJO el orden importa movPaleta5 <- c("#003f5c", "#58508d", "#bc5090", "#ff6361", "#ffa600") # Decisiones sobre estética de las gráficas theme_sensata <- theme(text = element_text(family = "Open Sans"), axis.title = element_text(colour = "dimgray"), axis.text.x = element_text(angle = 20, vjust = 1, hjust = 1, colour = "dimgray"), axis.text.y = element_text(colour = "dimgray"), legend.text = element_text(colour = "dimgray"), legend.title = element_text(colour = "dimgray"), plot.title = element_text(family = "Montserrat", colour = "black", lineheight=.5), plot.caption = element_text(colour = "dimgray"), plot.subtitle = element_text(family = "Montserrat"), panel.background = element_rect(size = 0, fill = "white"), panel.grid.major = element_line(size = 0.5, linetype = 'solid', colour = "gray85"), panel.grid.major.x = element_blank(), legend.key=element_rect(fill = "white", colour = "white"))
Por ahora vamos a usar unos datos de ejemplo que vienen en el paquete sensataDataAnalysis, después aprendemos cómo cargar datos que tenemos en nuestra computadora.
sensataExAnalysis <- sensataDataAnalysis::sensataExAnalysis
Fijense en los nombres de los objetos que voy creando.
Los microdatos no son lo que necesitamos para hacer una gráfica, es por eso que el paquete sensataDataAnalysis tiene una función que simplifica la manipulación de los datos a algo que podamos usar en ggplot. ggplot es el sistema de gráficas de tidyverse del cuál vamos a ir aprendiendo hoy.
graphData <- createGraphData(df = sensataExAnalysis, originVar = "q_EA_IN_03", groupVar = "q_EA_CA_10") graphData
Para crear la gráfica vamos a usar ggplot.
p <- ggplot(graphData, aes(x=q_EA_CA_10, y=Porcentaje)) g <- geom_col(aes(fill=Value), width = 0.4) p + g + labs(title = var_label(sensataExAnalysis$q_EA_CA_10), # subtitle = "Total", caption = "Sensata UX", fill = "Answer") + xlab("") + ylab("") + theme_sensata + scale_fill_manual(values = movPaleta5) # ggsave(filename = "figures/q_MV_JG_26_Tot_PMC.png", device = "png", height = 7, width = 14, units = "cm")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.