Reetiquetar factores en R
La operación que voy a discutir hoy es una que plantea problemas a muchos programadores nuevos en R: cómo renombrar niveles de un factor. Un caso típico ocurre al leer una tabla que contiene datos no normalizados. Por ejemplo,
mi.factor <- factor( c("a", "a", "b", "B", "A") )
donde se entiende que a y A, b y B son la misma cosa. Otro caso similar ocurre cuando se quieren agrupar niveles poco frecuentes como en
mi.factor <- factor(c(rep("a", 1000), rep("b", 500), letters[3:10]))
Para homogeneizar la entrada se recomienda sustituir sobre levels(mi.factor)
así:
levels(mi.factor)[levels(mi.factor) %in% letters[3:10]] <- "otras"
El lector interesado podrá comparar la velocidad de ejecución de este procedimiento con otros que se le ocurran (sobre un factor de un tamaño respetable).