library(tidyverse)
## -- Attaching packages -------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.0.0     v purrr   0.2.5
## v tibble  1.4.2     v dplyr   0.7.6
## v tidyr   0.8.1     v stringr 1.3.1
## v readr   1.1.1     v forcats 0.3.0
## -- Conflicts ----------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(dplyr)
library(ggplot2)

Tidy Data: Orden de Datos

El análisis de datos es un ejercicio que requiere tiempo, investigación y limpieza para realizar ejercicios claros y precisos con la información que nos interesa trabajar.

Por ello, el “Orden de datos” o en inglés “Tidy Data” es sumamente importante, ya que permite lograr un trabajo rápido y concreto con los datos analizados.

Es importante entender que si bien muchas librerías se encuentran ordenadas por observaciones y variables, muchas de ellas no lo están. Y es ahí cuando ordenar datos se vuelve un ejercicio vital para el análisis.

Cuando los datos se encuentran ordenados, son fáciles de manipular, modelar y visualizar, debido a que poseen una estructura específica: cada variable corresponde a una columna y cada observación a una fila.

El Estándar del Ordenamiento de Datos:

El estándar de datos ordenados es una forma de organizar los valores de de una data, en conjuntos de datos. Esta “limpieza” permite que se hable un “lenguaje universal”: Es decir,los datos puedan ser procesado por el software y entendidos por los usuarios.

La data “toy” creada a continuación no posee una estructura clara, si vemos el código y el orden de los datos que aparecen, no entenderemos la relación entre variables y observaciones.

test <- as_tibble(matrix(rnorm(36), nrow = 12))
names(test) <- paste("anho", c(2001:2003), sep = "_")
(test <- test %>% 
  mutate(mes = 1:12) %>% 
  select(mes, everything()))

Para evitar el desorden en los datos, y poder analizarlos adecuadamente, se definen tres características de ordenamiento y/o diseño de datos:

1- Estructura: La data rectangular debiera siempre estar estructura en filas y columnas. Donde las Columnas corresponderán siempre a Variables, y las Filas a Observaciones.

Usando los datos en “test” utilizados anteriormente, reestructuraremos las variables y observaciones dándoles un orden claro.

tidy_test <- tidyr::gather(data = test,
              key = "anho", 
              value = "variacion",
              -mes)

2- Semántica de Datos: Los conjuntos de dato son una colección de valores. En el caso de ser cualitativos, los valores serán números, y de ser cualitativos, serán cadenas. Cada valor pertenece a una variable y a una observación.

Es más fácil y ordenado describir relaciones funcionales en variables (columnas). Y es más fácil comparaciones en observaciones (filas).

3- Orden de Datos (Tidy Data): En resumen, al hablar de datos ordenados y estructurados, deben cumplirse tres características: 1. Cada variable forma una columna. 2. Cada observación forma una fila. 3.Cada tipo de unidad de observación forma una tabla.

Herramientas de Ordenamiento de Datos

Existen tres tipos o paquetes de herramientas para ordenar datos:

Para demostrarlas, cargamos un ejemplo:

pollos <- as_tibble(ChickWeight)

1. De Manipulación: Incluye cuatro paquetes de verbos: - Filter para eliminar o subdividir observaciones. Function subset()

filter(pollos, weight > 100)

Aquí se filtra el peso de los pollos, ascendente desde los 100 gramos.

  • Transform para agregar o modificar variables.Función transform()
transform(pollos, weight = weight/1000)

Aquí se transforma el peso de los pollos de gramos a kilogramos.

  • Aggregate para agregar multiples variables a un solo valor. Función aggregate(), summarise() y arrange()
summarise(pollos, peso_promedio = mean(weight), cantidad = n())

En peso_promedio se promedian los valores de peso de los pollos, y cantidad señala la cantidad de filas tomadas en cuenta.

  • Sort para cambiar el orden de las observaciones. Función summarise() y arrange()
arrange(pollos, weight)

Se ordenan las observaciones según peso, en orden ascendente desde el menor (35) al mayor (373)

2. De Visualización: Estas solo sirven para visualizar los datos. ggplot2

Ejemplo:

ggplot(data = pollos) + geom_point(mapping = aes(Time, weight, colour = Diet))

3. De Modelamiento: Al modelar se estructura el código de ordenamiento de los datos, por lo general, se refiere a cómo se escriben los códigos para poder procesar nuestras herramientas.

Reflexiones finales

El limpiado de data es, finalmente, un aspecto importante pero poco abordado en el estudio de estadísticas. La importancia del tidying y la estructuración de los datasets para ordenar y transformar data (entre otras funciones), es una tarea vital para optimizar el flujo de trabajo cuando se opera con datos.

  • Otra función importante del tidy data, además de las tareas de ordenado de datos, es la capacidad de modificación y visualización que poseen las herramientas disponibles. El estructurado de gráficos y la familiarización con el diseño centrado en el usuario son aspectos capitalizables mediante las herramientas que provee Tidy Data, volviendolos más accesibles.