Desbloquee el tidyverse aprendiendo a crear y usar datos ordenados, el formato de datos diseñado para R.

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6     ✔ purrr   0.3.4
## ✔ tibble  3.1.8     ✔ dplyr   1.0.9
## ✔ tidyr   1.2.0     ✔ stringr 1.4.0
## ✔ readr   2.1.2     ✔ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(babynames)

cases <- tribble( ~Country, ~“2011”, ~“2012”, ~“2013”, “FR”, 7000, 6900, 7000, “DE”, 5800, 6000, 6200, “US”, 15000, 14000, 13000 ) cases2 <- tribble( ~city, ~country, ~continent, ~“2011”, ~“2012”, ~“2013”, “Paris”, “FR”, “Europe”, 7000, 6900, 7000, “Berlin”, “DE”, “Europe”, 5800, 6000, 6200, “Chicago”, “US”, “North America”, 15000, 14000, 13000 ) pollution <- tribble( ~city, ~size, ~amount, “New York”, “large”, 23, “New York”, “small”, 14, “London”, “large”, 22, “London”, “small”, 16, “Beijing”, “large”, 121, “Beijing”, “small”, 121 )

Reformar datos

Los datos vienen en muchos formatos, pero R prefiere solo uno: Tidy Data. Aprenda a reconocer y ordenar datos en este tutorial, así como a remodelar el diseño de cualquier conjunto de datos.

Bienvenido

Las herramientas que aprendió en los Manuales anteriores funcionan mejor cuando sus datos están organizados de una manera específica. Este formato se conoce como datos ordenados y aparece en todo el tidyverse. Como científico de datos, dedicará mucho tiempo a convertir sus datos en un formato utilizable, por lo que es importante aprender a hacerlo rápidamente.

Este tutorial le enseñará cómo reconocer datos ordenados, así como también cómo remodelar datos desordenados en un formato ordenado. En él, aprenderá las funciones de disputa de datos centrales para tidyverse:

  • reunir() - que transforma datos amplios en datos largos, y
  • spread() - que transforma datos largos en datos anchos

Este tutorial utiliza los [ paquetes principales de tidyverse ] (http://tidyverse.org/), incluidos ggplot2, dplyr y tidyr, así como el paquete babynames . Todos estos paquetes han sido preinstalados y precargados para su comodidad.

Datos ordenados

Variables, valores y observaciones

En Análisis exploratorio de datos, propusimos tres definiciones que son útiles para la ciencia de datos:

  • Una variable es una cantidad, cualidad o propiedad que puedes medir.

  • Un valor es el estado de una variable cuando la mides. El valor de una variable puede cambiar de una medida a otra.

  • Una observación es un conjunto de medidas que se realizan en condiciones similares (por lo general, se realizan todas las medidas de una observación al mismo tiempo y en el mismo objeto). Una observación contendrá varios valores, cada uno asociado con una variable diferente. A veces me referiré a una observación como un caso o punto de datos.

Estas definiciones están ligadas al concepto de datos ordenados. Para ver cómo, apliquemos las definiciones a algunos datos reales.

mtcars

Las formas de los datos

Estos conjuntos de datos revelan algo importante: puede reorganizar el mismo conjunto de variables, valores y observaciones de muchas maneras diferentes.

Esto no es difícil de hacer. Si ejecuta los fragmentos de código a continuación, puede ver los mismos datos mostrados de tres formas más.

Datos ordenados

Los datos pueden venir en una variedad de formatos, pero un formato es más fácil de usar en R que los demás. Este formato se conoce como datos ordenados . Un conjunto de datos está ordenado si:

  1. Cada variable está en su propia columna
  2. Cada observación está en su propia fila
  3. Cada valor está en su propia celda (esto sigue de # 1 y # 2 )

Extracción de variables

Para ver por qué los datos ordenados son más fáciles de usar, considere una tarea básica. Cada fragmento de código a continuación extrae los valores de la variable cases como un vector y calcula la media de la variable. Uno usa una tabla ordenada, mtcars :

mean(mtcars$mpg)
## [1] 20.09062

¿Qué línea de código es más fácil de escribir? ¿Qué línea podrías escribir si solo has mirado la primera fila de datos?

Código de reutilización

El código para mtcars no solo es más fácil de escribir, sino que también es más fácil de reutilizar. Para ver lo que quiero decir, modifique los fragmentos de código a continuación para calcular la media de la variable mpg para cada tabla.

mean(mtcars$mpg)
## [1] 20.09062

Cálculos

Suponga que desea calcular las proporciones de ‘mpg’ a ‘hp’ para cada auto y cada año. Para hacer esto, debe asegurarse de que el valor correcto de “mpg” esté emparejado con el valor correcto de “hp” cuando realice el cálculo.

mtcars $ mpg  /  mtcars $ hp
##  [1] 0.19090909 0.19090909 0.24516129 0.19454545 0.10685714 0.17238095
##  [7] 0.05836735 0.39354839 0.24000000 0.15609756 0.14471545 0.09111111
## [13] 0.09611111 0.08444444 0.05073171 0.04837209 0.06391304 0.49090909
## [19] 0.58461538 0.52153846 0.22164948 0.10333333 0.10133333 0.05428571
## [25] 0.10971429 0.41363636 0.28571429 0.26902655 0.05984848 0.11257143
## [31] 0.04477612 0.19633028

Datos ordenados y R

El formato de datos ordenados funciona muy bien para R porque alinea la estructura de sus datos con la mecánica de R:

  • R almacena cada marco de datos como una lista de vectores de columna, lo que facilita la extracción de una columna de un marco de datos como un vector. Los datos ordenados colocan cada variable en su propio vector de columna, lo que facilita la extracción de todos los valores de una variable para calcular una estadística de resumen o para usar la variable en un cálculo.

  • R calcula muchas funciones y operaciones de forma vectorizada, haciendo coincidir los primeros valores de cada vector de entrada para calcular el primer resultado, haciendo coincidir los segundos valores de cada entrada para calcular el segundo resultado, y así sucesivamente. Los datos ordenados aseguran que R siempre hará coincidir los valores con otros valores de la misma operación siempre que las entradas de vectores se extraigan de la misma tabla.

knitr::include_graphics("TIDYDATA.PNG")

resumen

“Los datos vienen en muchos formatos, pero R prefiere solo uno: datos ordenados”. — Garret Grolemund Un conjunto de datos está ordenado si:

  1. Cada variable está en su propia columna
  2. Cada observación está en su propia fila
  3. Cada valor está en su propia celda (esto sigue de # 1 y # 2 )