Unificar categorías de dataframe en R

por | Jun 19, 2018 | R | 0 Comentarios

Unificar categorias sustituyendo por elementos de un conjuntologo-r

# Ampliar el conjunto de datos
datos$sexo <- c("masculino","h", "hombre", "h","mujer","femenino", "mujer", "m")
 
# Ver que valores toma la variable
unique(datos$sexo)
## [1] "masculino" "h" "hombre" "mujer" "femenino" "m"
# Definir los nombres que pueden aparecer en el cojunto de datos
nombres.hombre <- c("masculino", "hombre", "h")
nombres.mujer <- c("femenino", "mujer", "m")

library(stringi)
datos$sexo <- tolower(datos$sexo)
datos$sexo <- sapply(as.vector(datos$sexo), function(x) if(x %in% nombres.hombre) "Hombre" else x )
datos$sexo <- sapply(as.vector(datos$sexo), function(x) if(x %in% nombres.mujer) "Mujer" else x )

datos$sexo
## [1] "Hombre" "Hombre" "Hombre" "Hombre" "Mujer" "Mujer" "Mujer" "Mujer"

 

Unificar categorias de variables que contengan un substring

id <- c(10,20,30,40,50,60)
texto <- c("carne roja","pescado blanco","pescado azul", "fruta roja", "fruta verde", "verdura verde")
datos <- data.frame(id=id,texto=texto)
head(datos)

# Seleccionar las posiciones que contengan la palabra "roja"
ids <- grep("roja", datos$texto, ignore.case=TRUE)

# Seleccionar los valores que contengan "roja"
list <- datos$texto[ids]
# Filtrar del dataframe
filter(datos, texto %in% list)
id texto
1 10 carne roja
2 40 fruta roja

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *