Ejercicio 4

MP

2018/09/12

Manejo de datos con casos perdidos

Para estos ejercicios utilizará el data.frame marginacion_perdidos, que se crea con el siguiente código:

Deberá editar la ubicación de archivo .csv para que R lo encuentre en su computadora.

# Librerías
suppressPackageStartupMessages(library(tidyverse))
#Carga de datos
# Atención: la ubicación del archivo con los datos puede variar.
# Edite el la ubicación del archivo de ser necesario.

marginacion <- read_csv("../../static/testdata/Base_Indice_de_marginacion_municipal_90-15-utf-8.csv", 
                        col_types = cols(ANALF = col_number(), 
                                         AÑO = col_character(), CVE_ENT = col_character(), 
                                         CVE_MUN = col_character(), GM = col_character(), 
                                         IM = col_number(), IND0A100 = col_number(), 
                                         LUGAR_EST = col_number(), LUG_NAC = col_number(), 
                                         OVPT = col_number(), OVSAE = col_number(), 
                                         OVSD = col_number(), OVSDE = col_number(), 
                                         OVSDSE = col_number(), OVSEE = col_number(), 
                                         `PL<5000` = col_number(), PO2SM = col_number(), 
                                         POB_TOT = col_number(), SPRIM = col_number(), 
                                         VHAC = col_number(), VP = col_number()))
## Warning in rbind(names(probs), probs_f): number of columns of result is not
## a multiple of vector length (arg 1)
## Warning: 70750 parsing failures.
## row # A tibble: 5 x 5 col     row col      expected actual file                                      expected   <int> <chr>    <chr>    <chr>  <chr>                                     actual 1     1 VP       a number -      '../../static/testdata/Base_Indice_de_ma… file 2     1 OVSD     a number -      '../../static/testdata/Base_Indice_de_ma… row 3     1 OVSDSE   a number -      '../../static/testdata/Base_Indice_de_ma… col 4     1 IND0A100 a number -      '../../static/testdata/Base_Indice_de_ma… expected 5     2 VP       a number -      '../../static/testdata/Base_Indice_de_ma…
## ... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... .......................................................................... ... .......................................................................... ........ ..........................................................................
## See problems(...) for more details.
marginacion_perdidos <- marginacion %>%
  filter(AÑO == "2010") %>% 
  select(ENT, MUN, ANALF, `PL<5000`, PO2SM, SPRIM) %>% 
  mutate_if(is.numeric, ~.[sample(c(TRUE, NA), 
                                  prob = c(0.9, 0.1), 
                                  size = length(.), 
                                  replace = TRUE)]
            ) %>%
  mutate_if(is.numeric, ~replace_na(., -9999))

Manejo de casos perdidos

Los datos contenidos en el data.frame marginacion_perdidos contienen valores perdidos aleatorios. Lo sabemos con toda certeza porque así fueron creados. Sin embargo los valores perdidos no están debidamente codificados, ya que se utilizó el valor numérico -9999 para señalarlos.

  1. Utilizando tuberías y funciones de la librería tidyverse modifique los datos para que -9999 aparezca como NA. Utilice la función de su preferencia.

Recuerde que NA \(\neq\) “NA”.

1.1. Una vez que haya resuelto el primer ejercicio agregue el código necesario para asignar el valor 0 a todos los valores NA.

  1. ¿Cuántos NA hay en cada columna?

Sumarios de datos con NA

La función cor() calcula el coeficiente de correlación entre dos o más variables. Es buena práctica utilizarlo junto a summarise(), para que los resultados se presenten como un data.frame.

  1. ¿Cuál es el coeficiente de correlación R de Pearson para las variables SPRIM y ANALF?

Lea la ayuda de cor() con help(cor). Preste mucha atención al argumento use =

  1. ¿Cuál es la correlación entre SPRIM y ANALF para cada Entidad Federativa?

4.1. ¿En qué Entidad Federativa hay mayor correlación? ¿Y menor? Resuelva programáticamente.1 la


  1. i.e. NO no mirando a la tabla sino generando el código necesario para obtener el resultado