Métodos Cuantitativos Básicos - Otoño 2020

Ejercicios previos al laboratorio de la semana 7

¿Qué verbo de {dplyr} se debe utilizar en cada uno de los siguientes casos?

  • Del tibble mundial me interesa conservar únicamente las observaciones de jugadores de México y Colombia

Usar el verbo filter.

  • En la base de CONEVAL quiero construir un ranking de los estados con mayor pobreza extrema

En este caso, uso el verbo mutate con la función rank dentro.

  • Del tibble presidente necesito conservar únicamente las variables que contienen información sobre los votos que recibió el PAN

Uso el verbo select, para quedarme con los datos del PAN.

## # A tibble: 6 x 2
##   nombre_distrito   pan
##   <chr>           <dbl>
## 1 JESUS MARIA     47710
## 2 AGUASCALIENTES  40125
## 3 AGUASCALIENTES  74267
## 4 MEXICALI        34027
## 5 MEXICALI        38591
## 6 ENSENADA        28926
  • Me gustaría que la base de la ENVIPE que contiene información de cifra negra a nivel estatal muestre las observaciones con orden descendente

Para ordenar los renglones, utilizo el verbo dplyr::arrange() con el argumento ordenador (en este caso, las observaciones) acompañado de un símbolo de menos (-).

  • En el tibble pib_mex, las cifras del PIB están en millones de pesos. Me gustaría tener una variable que exprese estas cifras en pesos.

Uso el verbo mutate para generar una nueva variable (columna) multiplicando la columna del PIB por 1e6.

  • Quisiera cambiar el nombre de todas las variables del tibble parametria

Uso el verbo rename (y alguno de sus primos, si así lo considero prudente) y cambio los nombres a otros que me parezcan mejores.

  • Expliquen la diferencia entre mutate() y transmute()

  • mutate() genera una nueva columna y la agrega a un tibble/data.frame existente.

  • transmute() genera una nueva columna y la extrae de su tibble/data.frame generador, quedandonos sòlo con dicha columna.

Es como la imágen de arriba, pero llevandose la columna.

  • ¿Qué funciones podemos utilizar dentro de mutate() para construir variables desfazadas?

Podemos usar la función dplyr::lag() para generar retrasos y la función dplyr::lead() para generar adelantos.

Ejercicio práctico:

Del archivo de la ENVIPE, importen los datos de “Delitos ocurridos por entidad federativa, según cifra negra, 2017” y guárdenlos en un objeto que se llame cifra_negra. OJO: asegúrense de convertir las variables a tipo numeric en caso necesario.

## New names:
## * `` -> ...1
## * `` -> ...2
## Rows: 33
## Columns: 4
## $ ...1      <chr> "Estados Unidos Mexicanos", "Aguascalientes", "Baja Ca…
## $ ...2      <dbl> 33614307, 352271, 1094675, 149777, 180991, 517418, 142…
## $ Absolutos <dbl> 31341003, 314877, 976362, 128416, 162245, 482304, 1259…
## $ Relativos <dbl> 93.23709, 89.38488, 89.19195, 85.73813, 89.64258, 93.2…

No convertiré a numeric hasta que me tope algún problema.

  • Renombren las variables como: Entidad, delitos_totales, cn_absoluta y cn_relativa.

Primero hago pruebas, sin reescribir la variable…

## # A tibble: 33 x 4
##    Entidad                  delitos_totales cn_absoluta cn_relativa
##    <chr>                              <dbl>       <dbl>       <dbl>
##  1 Estados Unidos Mexicanos        33614307    31341003        93.2
##  2 Aguascalientes                    352271      314877        89.4
##  3 Baja California                  1094675      976362        89.2
##  4 Baja California Sur               149777      128416        85.7
##  5 Campeche                          180991      162245        89.6
##  6 Coahuila de Zaragoza              517418      482304        93.2
##  7 Colima                            142644      125971        88.3
##  8 Chiapas                           683285      640664        93.8
##  9 Chihuahua                         743796      676478        90.9
## 10 Ciudad de México                 4740868     4428139        93.4
## # … with 23 more rows

…luego, ya que estoy seguro, sobreescribo:

  • Filtren el tibble para eliminar los renglones vacíos

Ya lo hice arriba, pero lo hacemos de nuevo acá:

  • El promedio cifra negra en términos absolutos es 978,019.4. Construyan una variable nueva que nos indique qué estados tienen una cifra negra por encima del promedio y cuáles no.
  • ¿Cuántos estados están por encima del promedio?

Tres formas distintas:

## Sobre 
##     8
## [1] 8
## # A tibble: 2 x 2
## # Groups:   cn_sobre_prom [2]
##   cn_sobre_prom     n
##   <chr>         <int>
## 1 Bajo             25
## 2 Sobre             8
  • Construyan una variable que sea un ranking ascendente de cn_relativa.
## # A tibble: 33 x 2
##    Entidad             rank_asc
##    <chr>                  <dbl>
##  1 Baja California Sur        1
##  2 Colima                     2
##  3 Hidalgo                    3
##  4 Baja California            4
##  5 Aguascalientes             5
##  6 Campeche                   6
##  7 Yucatán                    7
##  8 Querétaro                  8
##  9 Durango                    9
## 10 Chihuahua                 10
## # … with 23 more rows
  • ¿Cuáles son los estados con menor porcentaje de cifra negra?
## # A tibble: 5 x 2
##   Entidad             rank_asc
##   <chr>                  <dbl>
## 1 Baja California Sur        1
## 2 Colima                     2
## 3 Hidalgo                    3
## 4 Baja California            4
## 5 Aguascalientes             5

Extra: ¿tuvieron que especificar un criterio para desempates? ¿Por qué?

## [1] FALSE  TRUE FALSE FALSE FALSE  TRUE
##  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [12] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [23] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

Veo que no hubo dupicados, por lo tanto, no había necesidad de especificar un criterio de desempate.