6.3 forcats::
Es un excelente aliado para manipular factores, principalmente cuando de graficar se trata. Sitio oficial- machete
fct_relevel
A veces queremos forzar los niveles según nuestro interés, por ejemplo, queremos posicionar al tratamiento control al inicio o al final.
iris %>%
ggplot(aes(x = fct_relevel(Species, c("virginica", "setosa", "versicolor")),
y = Sepal.Width)) +
geom_boxplot()
fct_reorder
Cuando queremos ver el orden de los tratamientos rankeados según la variable.
iris %>%
ggplot(aes(x = fct_reorder(Species, Sepal.Width, .fun=median), #.desc=TRUE
y = Sepal.Width)) +
geom_boxplot()#+
# geom_jitter(position=position_jitter(0.1))+
# coord_flip()
case_when
Asociado a mutate
, cuando deseamos modificar el nombre de los niveles.
iris %>%
mutate(species_new =
# `nombre_nuevo` = "nombre_original"
case_when(Species=="setosa" ~ "Setosa",
Species=="versicolor" ~ "Versicolor",
Species=="virginica" ~ "Virginica")) %>%
# TRUE ~ "Virginica"))
ggplot(aes(x = species_new, y = Sepal.Width)) +
geom_boxplot()
O queremos generar un nuevo vector categórico a partir de una variable pre-existente.
iris %>%
mutate(sepal_categ =
case_when(
Sepal.Length > 5.5 ~ "long",
Sepal.Length > 5 ~ "medium",
TRUE ~ "short"
)) %>%
ggplot(aes(x = Species, y = Sepal.Width, color = sepal_categ)) +
geom_boxplot()
fct_reorder2
Reordenar los nivels por su valor final cuando son graficados con otras dos variables.
iris %>%
ggplot(aes(Sepal.Width,
Sepal.Length,
color = fct_reorder2(Species, Sepal.Width, Sepal.Length)))+
geom_smooth(se=F)
fct_infreq
Reorder factors levels by first appearance or frequency