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.
- Utilizando tuberías y funciones de la librería
tidyverse
modifique los datos para que-9999
aparezca comoNA
. 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
.
- ¿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
.
- ¿Cuál es el coeficiente de correlación R de Pearson para las variables
SPRIM
yANALF
?
Lea la ayuda de
cor()
conhelp(cor)
. Preste mucha atención al argumentouse =
- ¿Cuál es la correlación entre
SPRIM
yANALF
para cada Entidad Federativa?
4.1. ¿En qué Entidad Federativa hay mayor correlación? ¿Y menor? Resuelva programáticamente.1 la
i.e. NO no mirando a la tabla sino generando el código necesario para obtener el resultado↩