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

ESTO NECESITA ACTUALIZARSE

Introducción a sensata Data Framework

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.

Qué es R y Rstudio

"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)

Setup, paquete, cargar fuentes y decisiones estéticas

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"))

Primer paso, cargar datos

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.

Segundo paso, preparar datos para gráfica

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

Tercer paso, crear la gráfica

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")


SensataUX/sensataDataAnalysis documentation built on May 11, 2023, 10:59 a.m.