- Casos perdidos
- missing o NA
- Unión de múltiples bases de datos
- Ejemplos
11 de septiembre de 2018
Casi todas las bases de datos tienen casos perdidos.
Los casos perdidos pueden tener diferentes orígenes:
En R los valores perdidos se representan explícitamente con el valor lógico NA
NA
, SIN comillas.is.na(x)
x
regresa un vector lógico en el que cada NA
de x
es TRUE
suppressPackageStartupMessages(library(tidyverse)) x = c(1, -9999, NA) perdidos <- data.frame(x = x, test= is.na(x)) perdidos
## x test ## 1 1 FALSE ## 2 -9999 FALSE ## 3 NA TRUE
filter(is.na(x))
NA
perdidos %>% filter(is.na(x))
## x test ## 1 NA TRUE
perdidos %>% filter(!is.na(x))
## x test ## 1 1 FALSE ## 2 -9999 FALSE
drop_na(x)
NA
perdidos %>% drop_na()
## x test ## 1 1 FALSE ## 2 -9999 FALSE
na_if(x)
perdidos %>% mutate(x = na_if(x, -9999))
## x test ## 1 1 FALSE ## 2 NA FALSE ## 3 NA TRUE
Aplicación para cadenas parciales
df <- data.frame(cadena = c("Básica Primaria", "Básica Secundaria", "Ornitorrinco")) df %>% filter(cadena == "Básica")
## [1] cadena ## <0 rows> (or 0-length row.names)
# Contiene "Básica" df %>% filter(str_detect(cadena, "Básica"))
## cadena ## 1 Básica Primaria ## 2 Básica Secundaria
# Contiene "nito" df %>% filter(str_detect(cadena, "nito"))
## cadena ## 1 Ornitorrinco
# Termina con "a" df %>% filter(str_detect(cadena, "a$"))
## cadena ## 1 Básica Primaria ## 2 Básica Secundaria
#Empieza con "B" df %>% filter(str_detect(cadena, "^B"))
## cadena ## 1 Básica Primaria ## 2 Básica Secundaria
df %>% separate(cadena, into = c("Nivel", "Servicio"))
## Warning: Expected 2 pieces. Missing pieces filled with `NA` in 1 rows [3].
## Nivel Servicio ## 1 Básica Primaria ## 2 Básica Secundaria ## 3 Ornitorrinco <NA>