Reordenar factores en R

Autor: | Última modificación: 18 de abril de 2024 | Tiempo de Lectura: 2 minutos
Temas en este post:

Algunos de nuestros reconocimientos:

Premios KeepCoding

Existen diferentes formas de reordenar factores en R. En esta ocasión, te explicaremos cómo se utiliza la función relevel.

¿Cómo reordenar factores en R?

Se pueden reordenar factores en R por su nivel, buscando que el nivel de referencia especificado sea el primero y los demás se muevan hacia abajo. Esto se convierte en un elemento de gran utilidad para contrastes de tratamiento que toman como referencia el primer nivel.

En los modelos de regresión lineal básicos en R, la categoría de referencia 1 se utiliza, normalmente, para almacenar la variable de factor. En algunas ocasiones requeriremos reordenar factores en R de forma manual y para ello se utiliza la función relevel ().

Relevel () se utiliza para ordenar los niveles de un vector numérico o de caracteres de factores, de modo que el nivel especificado sea el primero y los demás se muevan hacia abajo.

Se puede, por ejemplo, cambiar el orden de los niveles de los factores para ordenarlos alfabéticamente.

Modo de uso

La fórmula para utilizar el relevel () es:

relevel (x, ref, ...)

Donde x, ref y … son los argumentos, de modo que:

  • x es un factor desordenado o un vector de caracteres.
  • ref es el nivel de referencia, que convencionalmente es un string. El nivel de referencia puede ser una función, a la que se le llamará con los niveles actuales como entrada. El valor devuelto (que debe ser un vector de caracteres) se utilizará para volver a nivelar el factor. Todos los niveles que no sean mencionados conservarán su orden actual, por defecto, después de los niveles reordenados de manera explícita.
  • son los argumentos adicionales para futuros métodos.

Veamos un ejemplo

Para que quede más claro cómo se lleva a cabo el proceso de reordenar factores en R, te ponemos en contexto con un ejemplo:

# Crear marco de datos de muestra
x <- sample(1:7, 500, replace = TRUE)
y <- round(x + rnorm(500), 3)
x <- as.factor(x)
sample_data <- data.frame(x, y)
 
# Aclarar el nivel de referencia de reordenación
sample_data$x <- relevel(sample_data$x, ref = 4)
 
# Crear el modelo de regresión lineal
linear_model <- lm( y~x, sample_data)
 
# Imprimir el resumen del modelo lineal
summary(linear_model)

El output sería el siguiente:

reordenar factores en r

¿Qué sigue?

Existen otras formas de reordenar factores en R, como reorder (), una función genérica en la que el método predeterminado trata su primer argumento como una variable categórica y reordena los otros niveles en función de los valores de una segunda variable, generalmente numérica.

También existe una librería dentro del paquete dplyr, pero no suele utilizarse.

Todo esto y mucho más podrás aprenderlo en nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva en la que, en muy poco tiempo, podrás comprender los conceptos y temáticas necesarios para incursionar en el mercado laboral. ¡Anímate a pedir más información!

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado