class: center, middle, inverse, title-slide # Herramientas Cuantitativas para el Análisis Político ## [CP44] Maestría en Ciencia Política ### Juan Pablo Ruiz Nicolini ### Universidad Torcuato Di Tella ### 6/10/2020 --- exclude: true --- class: middle, center ## SESIÓN 4 ### Domar los datos (II) #### [
/MetodosCiPol/](https://tuqmano.github.io/MetodosCiPol/) #### [
/MetodosCiPol/](https://github.com/TuQmano/MetodosCiPol) --- # Hoja de ruta 1. Repaso -- 2. Ejercicio clase 3 + demo `git` -- 3. Domar los datos II -- * Más `dplyr` (verbos auxiliares; datos relacionales) -- * día y hora `{lubridate}` -- * caracteres `{stringr}` -- * variables ordinales `{factors}` --- ## Ciencia de Datos - Domar Datos <img src="https://es.r4ds.hadley.nz/diagrams_w_text_as_path/es/data-science-wrangle.svg" width="100%" /> -- * **Importar
** -- * **Ordenar
** -- * **Transformar
** --- ##
Referencias ### PROCESAR 4. _Transformación de Datos_, en [Wickham y Grolemnud](https://es.r4ds.hadley.nz/transform.html) 5. _Transformando nuestros Datos_ en [Montané](https://bookdown.org/martinmontaneb/CienciaDeDatosParaCuriosos/transformando-nuestros-datos-data-wrangling.html) 6. _Manejo de datos_ en [Urdinez y Cruz](https://arcruz0.github.io/libroadp/data.html) 7. _Poniendo los datos en forma_ en [Vazquez Brust](https://bitsandbricks.github.io/ciencia_de_datos_gente_sociable/poniendo-los-datos-en-forma.html) --- class: inverse, center, middle # REPASO --- background-image: url(https://github.com/TuQmano/hex-stickers/raw/master/PNG/tidyr.png) background-position: 95% 5% background-size: 10% # Domar los datos I ## Datos Ordenados <img src="https://es.r4ds.hadley.nz/diagrams_w_text_as_path/es/tidy-1.svg" width="80%" /> -- 1. Cada variable debe tener su propia columna. -- 2. Cada observación debe tener su propia fila. -- 3. Cada valor debe tener su propia celda. --- background-image: url(https://github.com/TuQmano/hex-stickers/raw/master/PNG/tidyr.png) background-position: 95% 5% background-size: 10% # Domar los datos I ## Datos Ordenados: _pivotear_ Entre los distintos verbos, se destacan: * `pivot_longer()`: reduce cantidad de columnas y aumenta las filas * `pivot_wider()`: reduce cantidad de filas y aumenta columnas * Más verbos: `complete / fill / replace_na / drop_na`, `nest / unnest`, `unite /separate / extract` [
`{tidyr}`](https://tidyr.tidyverse.org/) --- background-image: url(https://github.com/TuQmano/hex-stickers/raw/master/PNG/dplyr.png) background-position: 95% 5% background-size: 10% # Domar los datos I ## Transformar ### Una caja de herramientas #### Verbos principales de `{dplyr}` para manipular la _data_ * `filter()`: reduce la cantidad de filas (observaciones) * `select()`: reduce la cantidad de columnas (variables) * `mutate()`: crea o modifica variables * `arrange()`: ordena (sort) * `group_by()`: agrupa observaciones * `summarize()`: reduce múltiples observaciones a un valor --- class: center, middle ### Ejemplo: #
# + #
--- # `git` <img src="https://yabellini.netlify.app/img/git_concept_map.png" width="80%" />
<https://yabellini.netlify.app/es/post/githubconr/> --- class: inverse, center, middle ### Revisión # TP N°1 --- background-image: url(https://www.tidyverse.org/blog/2020/06/dplyr-1-0-0/dplyr.png) background-position: 95% 5% background-size: 10% # Domar los datos I ## + verbos de `{dplyr}` -- * `n()` -- * `slice()` (y variantes: `slice_*()`) -- * `rename()` -- * `case_when()` (re versión de `ifelse()`) -- * Variantes de `mutate_*()` y `summarise_*()` -- * `across()` en el [*nuevo* `{dplyr}`
](https://www.tidyverse.org/blog/2020/06/dplyr-1-0-0/) -- * grupos por filas con `rowwise()` --- background-image: url(https://www.tidyverse.org/blog/2020/06/dplyr-1-0-0/dplyr.png) background-position: 95% 5% background-size: 10% ## Datos relacionales <img src="https://www.garrickadenbuie.com/project/tidyexplain/images/left-join-extra.gif" width="300" /> [
Tidy Explain, Garrick Aden‑Buie](https://www.garrickadenbuie.com/project/tidyexplain/) --- background-image: url(https://www.tidyverse.org/blog/2020/06/dplyr-1-0-0/dplyr.png) background-position: 95% 5% background-size: 10% ## Datos relacionales * Uniones de transformación (del inglés _mutating joins_), que agregan nuevas variables a un data frame a partir de las observaciones coincidentes en otra tabla (*vg* `left_join()`) * Uniones de filtro (del inglés _filtering joins_), que filtran observaciones en un _data frame_ con base en si coinciden o no con una observación de otra tabla (*vg* `anti_join()`). * Operaciones de conjuntos (del inglés _set operations_), que tratan las observaciones como elementos de un conjunto (*vg* `set_diff()`).
[Datos Relacionales - R4DS](https://es.r4ds.hadley.nz/datos-relacionales.html) --- class: inverse, middle, center # Domar los Datos ### (II Parte) --- background-image: url(https://github.com/rstudio/hex-stickers/raw/master/PNG/stringr.png) background-position: 95% 5% background-size: 10% # Domar los datos II ## Caracteres -- * Funciones que permiten manipular caracteres individuales dentro de las cadenas en vectores de caracteres (_vg_ : **`str_sub(string = x, start = 1, end = 4)`**). -- * Herramientas para agregar, eliminar y manipular espacios en blanco (_vg_ : **`str_pad(string = x , width = 2 , side = "left" , pad = 0)`**). -- * Funciones que detectan coincidencia de patrones como las _expresiones regulares_ -[_regex_
](https://stringr.tidyverse.org/articles/regular-expressions.html): **`str_detect(string = x, pattern = ":digits:")`** -- [
`{stringr}`](https://stringr.tidyverse.org/articles/stringr.html) --- background-image: url(https://github.com/rstudio/hex-stickers/raw/master/PNG/lubridate.png) background-position: 95% 5% background-size: 10% # Domar los datos II ## Días y horas `{lubridate}` incluye una gran variedad de funciones para **(a) *paresear* días y horas**; **(b) crear y extraer información**; (c) manejar zonas horarias (_tz_); y hasta calcular intervalos de tiempo y _aritmética de tiempo_ -- ```r library(lubridate) # (a) dmy("6 de octubre de 2020") ## [1] "2020-10-06" ``` -- ```r library(lubridate) # (b) today() + 365 ## [1] "2021-10-05" ``` -- [
`{lubridate}`](https://lubridate.tidyverse.org/index.html) --- background-image: url(https://github.com/rstudio/hex-stickers/raw/master/PNG/forcats.png) background-position: 95% 5% background-size: 10% # Domar los datos II ## Variables categóricas > *Los factores son útiles cuando se tiene datos categóricos, variables que tienen un conjunto de valores fijo y conocido, y cuando se desea mostrar los vectores de caracteres en orden no alfabético* **R4DS - <https://es.r4ds.hadley.nz/factores.html>** -- * `fct_reorder()` > modifica el orden -- * `fct_recode()` > modifica valores (no niveles) -- * `fct_collapse()`> colapsar es útil para re codificar muchos niveles -- * `fct_lump()` > agrupa --- class: middle, center background-image: url(https://raw.githubusercontent.com/electorArg/polAr/master/hex/hex-polAr.png) background-position: 90% 10% background-size: 15% #Domar los Datos (II) ### **-> _live coding_ con `{polAr}`**