class: center, middle, inverse, title-slide # Introducción al Tidyverse
## Taller Manos a la Data
###
Arturo Chian
@besteamperu
### Un presentación BEST
http://besteamperu.org/
--- class: inverse middle center ## Por favor silenciar los micrófonos .animated.bounce[ <img src="img/micro2.png" height=280px> ] --- class: inverse middle center ## ¿Cómo hacerlo? .animated.bounce[ <img src="img/micro.png" height=280px> ] --- ## Agenda del día de hoy (0-10) * Qué es el Tidyverse * Dplyr, tidyr y ggplot2 * ¿Cómo aprender R y Data Science? * Comparaciones del nivel de R vs inglés * Estadísticas de Reactiva Perú * Deuda de los gobiernos locales * Tasa de empleo informal * Promedio de horas a la semana que dedican mujeres y hombres adultas y adultos a actividades diarias * Replicación paper de economía conductual --- class: inverse middle center ## El tidyverse .animated.bounce[ <img src="img/tidyverse.png" height=280px> ] --- ## El concepto Tidy >Happy families are all alike; every unhappy family is unhappy in its ownway > **León Tolstói** Las base de datos limpias, son todos iguales; pero la data sucia, hay de muchas maneras... --- ## ¿Base de datos limpias? .center[ <img src="img/tidy1.png" height=500px> ] --- ## Conceptos: Semántica de la data Una base de datos es un conjunto de valores, usualmente números (cuantitativo) o texto (cualitativos). Valores son organizados en 2 formas. Cada valor representa una variable y una observación. Una variable contiene todos los valores que mide bajo el atributo subyacente (ejm peso, temperatura, duración) a través de unidades. Una observación contiene todos los valores medidos en una misma unidad (persona, empresa, país, día, etc) a través de los atributos. --- ## Base de datos limpias .center[ <img src="img/tidy2.png" height=500px> ] --- ## Conceptos: Semántica de la data **Regla de oro:** Debe existir una relación funcional entre las variables, en vez de filas así como debe ser sencillo de hacer comparaciones entre grupos de observaciones (promedio del grupo A vs promedio del grupo B) que entre columnas. --- ## Conceptos: Tipos de data * __Data Estructurada:__ Es una data que se encuentra con patrones fáciles de reconocer. En términos de tiempo y facilidad, es la data más sencilla de cargar y leer. * __Data no Estructurada:__ Si bien puede presenta una estructura interna, esta no está predefinida como modelos de data o un esquema. Ejemplos: Word, ppts, emails, paginas webs, fotos, videos, audio, redes sociales, etc. --- ## Tidyverse > The tidyverse is an opinionated collection of R packages designed for data science. All packages share an underlying design philosophy, grammar, and data structures. Pueden encontrar mucha información [aquí](https://www.tidyverse.org/). --- ## Principales paquetes (parte I) * __ggplot2:__ Es un sistema para crear gráficos declarativos, basados en el excelente libro The Grammar of Graphics. Tú provees la data, y todos los detalles y puedes realizar gráficos básicos hasta realmente profesionales (Por ejemplo el prestigioso FT usa ggplot2). * __dplyr:__ Es una gramática de manipulación de data, el cual provee un conjunto de verbos para resolver los retos más comunes de manipulación de data (crear grupos de variables y sus respectivos resúmenes, contar según x, crear variables nuevas, etc). * __tidyr:__ Sirve para volver una bd tidy. Usualmente te va a servir para transponer data (para un usuario básico). --- ## Principales paquetes (parte II) * __readr:__ sirva para leer data rectangular como csv, tsv y fwf. * __tibble:__ son data frame más modernos. Te ayuda a identificar problemas antes. * __purrr:__ evitemos loop y hagamos purr (ronronear). Sirve para repetir cosas. Su uso es parecido al sapply. * __forcats:__ paquete especializado para variables categóricas. * __lubridate:__ si necesitas lidiar con fechas. Este paquete es lo que necesitas. * __glue:__ para unir textos (concatenar de formas más sencillas y eficientes). * __tidymodels:__ para hacer modelos de una forma tidy. --- ## ¿Cómo aprender? * Revisando ejemplos por internet y aplicarlos con tu data de interés. * Replicando ejemplos de tu interés y haciendo pequeñas modificaciones. * Retándote mucho más. * Accede al Github, descarga y practica [aquí](https://github.com/arturochian/MDv01sesion2_parte-practica) --- ## Comparaciones del nivel de R vs inglés (Nivel básico) * Primero identificar qué es el nivel básico, intermedio y avanzado. * Verbo to be en presente simple: nivel básico de inglés. * Verbos básicos de dplyr: nivel básico de R. * Hablar acerca de ti mismo en presente simple (hobbies, trabajo, estudios, etc), tener un vocabulario básico para defenderte en el extranjero, saber la gramática más básica y poder entender algunas de algo más complejas. * Poder usar R para tus trabajos e investigaciones, poder graficar, hacer tablas, hacer reportes automáticos básicos, desarrolla aplicaciones básicas, entender la idea básica de YAML, CSS, aprender replicando, identificar los errores que uno puede cometer al replicar, usar funciones básicas de Git, etc. --- ## Comparaciones del nivel de R vs inglés (Nivel intermedio) * En caso del inglés, un nivel intermedio es cuando sacas el TOEFL con una nota entre 90-105 (de 120). Capacidad profesional de hablar, escribir, escuchar y leer. * En caso de R, un nivel de intermedio desarrolla reportes, presentaciones y aplicaciones muy decentes automáticos, puedes automatizar varios procesos usando criterios básicos de eficiencia, puede crear paquetes e interactar básicamente con otros lenguajes para temas de eficiencia (ejm con Python). --- ## Comparaciones del nivel de R vs inglés (Nivel avanzado) * En caso del inglés, un nivel avanzado es cuando sacas el CAE o CPE. Capacidad profesional de hablar, escribir, escuchar y leer, incluso mejor que un nativo promedio y similar a un nativo con alto nivel de educación. * En caso de R, un nivel de avanzado desarrollar todo lo que desee, lidiar prácticamente con cualquier problema. Desarrolla paquetes y los cuelga en el CRAN y revisa continuamente las últimas tendencian en programación. Maneja filosofías de programación. ***Todo es posible y se siente en la capacidad de hacerlo***. --- ## Comparaciones del nivel de R vs inglés .center[ <img src="img/Cambridge.jpg" height=500px> ] --- class: inverse middle center ## 1 Estadísticas de Reactiva Perú .animated.bounce[ <img src="img/reactiva.png" height=280px> ] --- ## 1 Estadísticas de Reactiva Perú * 11/15 Votos! * Datos del MEF. * Es un excel con una fila de más y una columna de más. * Falta una pequeña limpieza de datos. --- ## 1 Estadísticas de Reactiva Perú (tarea) * retarse con preguntas reales en dplyr en lo más básico. --- class: inverse middle center ## 2 Deuda de los gobiernos locales .animated.bounce[ <img src="img/mef.jpg" height=280px> ] --- ## 2 Deuda de los gobiernos locales * 7/15 Votos! * Datos del MEF. * Son varios excels 9 con muchas hojas. * Sólo se usará el histórico de un resumen para armar una BD. * Hay mucho por limpiar --- ## 2 Deuda de los gobiernos locales (tarea) * Graficar cosas específicas usando dplyr. * Mejorar el gráfico basándose en el ejemplo de la sesión 1 así como de la web. --- class: inverse middle center ## 3 Tasa de empleo informal .animated.bounce[ <img src="img/inei.jpg" height=280px> ] --- ## 3 Tasa de empleo informal * 6/15 Votos! * Datos del INEI. * Es una data resumen del INEI. * Es un histórico pero no es tidy. * Hacerlo tidy y de ahí graficar. --- class: inverse middle center ## 4 Promedio de horas por género .animated.bounce[ <img src="img/inei.jpg" height=280px> ] --- ## 4 Promedio de horas por género * 6/15 Votos! * Datos del INEI. * Es una data resumen del INEI. * Es un histórico pero no es tidy. * Hacerlo tidy y de ahí graficar o hacer tablas. * hay 2 hojas, para hacerlo fácil o retador. --- class: inverse middle center ## 5 Replicación paper de economía conductual .animated.bounce[ <img src="img/nature.jpg" height=280px> ] --- ## 5 Replicación paper de economía conductual * 6/15 Votos! * Datos del Nature, compartidos por el mismo autor. * Manejarlo requiere entender el paper. * Nivel retador (para aquellos que están iniciando). --- ## Tarea * Responder la clase tarea de la BD1. (20%) Los retos no son necesarios. * Responder la clase tarea de la BD2. (20%) Los retos no son necesarios. * Vota por tu BD favorita para que pueda ser colgada este miércoles! (20%) * Instala [Github for Windows](Github for Windows) y manda pantalla (20%) * Seleccionar la BD 3, 4 o 5 y haz tu propio RMD hasta donde llegues (tabla por ejemplo tipo BD 1 o sesion 1). (20%)