fbpx

Hola mundo, en esta entrada vamos a estudiar qué son los Factores en R. Después de ver el video vas a saber

  • Cómo crear un factor en R
  • Como recodificar factores en R
  • Cómo ordenarlos

Esta entrada viene acompañada de un video en YouTube que sigue un curso de R. Además hay un código en R que puedes seguir con el video para poner el práctica los conceptos estudiados.

Qué son los factores?

Los factores son una estructura de datos para manejar variables categóricas. A ver Rafa, explica eso otra vez!

Qué es una variable categórica?

Las variables categóricas son datos que toman una cantidad finita de valores. Es decir, que pueden pertenecer a una de varias clases o categorías.

Ejemplos pueden ser rangos de edades, colores, o días de la semana

En análisis de datos y estadística las variables categóricas se tratan de manera diferente a las variables continuas o numéricas, como lo que vimos en la entrada sobre variables en R.

Necesitamos tener un objeto en R para eso. Los factores permiten trabajar con modelos y gráficas de variables categóricas. Por eso son importantes.

Ejemplos con Factores en R

Para los datos de esta práctica vamos a imaginar una tienda de ropa camisetas/playeras/franelas/remeras… (qué difícil es hablar el español)

Luego supongamos que te interesa saber cuánta ropa tienes por tallas o medida. Para eso, decides hacer un registro de la talla de cada camiseta: pequeña con S, mediana con M, y grande con G.

franelas de diferentes tamaños

Haces un vector en R que contenga la talla de cada camiseta. Luego piensas hacer una gráfica con el conteo por talla… Todo parece tener sentido no?

En R, tenemos el código con el vector de tallas y ejecutamos. La función plot es para graficar.

# crear vector de ventas
tallas <- c('m', 'g', 'S', 'S','m', 'M')

# intentar graficar
plot(tallas)

# peeeero....
error grafica r

Pero vemos que en la gráfica hay un error… que ha pasao’? En lo que sigue, aprenderemos como solucionar este tipo de problema utilizando factores.

Cómo crear factores en R

Lo primero es crear un factor a partir del vector de tallas. Para eso utilizamos la función factor() con el vector como argumento. Las categorías o clases de un factor se llaman niveles… y podemos mirarlos utilizando la función levels() y pasando el factor como argumento.

En R, creamos el factor, utilizamos un nombre que nos ayude a saber el contenido de la variable.

# crear factor de un vector
tallas_factor <- factor(tallas)

Luego hacemos la gráfica y vemos como ahora podemos tener conteos de cada nivel… es un avance!

# graficar factor
plot(tallas_factor)
grafica de factores en r

Hay un detalle en los niveles que quizás ya te diste cuenta… Hay tallas en mayúsculas y minúsculas.

# mirar niveles de factor
levels(tallas_factor)

Esto ocurre porque capturamos así los datos. Pero no pasa nada, es algo bastante común. Para corregir esto tenemos que recodificar los niveles. Veremos cómo hacerlo en la próxima sección

Cómo recodificar factores en R

Para cambiar el nombre de los niveles, tenemos que modificar la función factor(). Además del vector, esta función tiene otras opciones.

Una de estas opciones es levels, que es donde escribimos los niveles que tenemos, las mayúsculas y minúsculas la otra opción es labels, que es donde escribimos los niveles como los queremos. En nuestro caso, decidimos tener todo en mayúscula.

En R, hacemos estos cambios escribiendo los niveles y sus nuevas etiquetas, esto se llama limpieza de datos.

# creando factor recodificado
tallas_recodificado <- factor(tallas,
                              levels = c("g", "m", "M", "S"),
                              labels = c("G", "M", "M", "S"))

Vale la pena ver el resultado. Si hacemos la gráfica otra vez, ya tiene más sentido, muy bien!

# graficando ventas_recodificado
plot(tallas_recodificado)

Obtener conclusiones y limpiar datos no siempre es fácil, pero es muy satisfactorio encontrar lo que necesitamos para nuestro paper o trabajo de análisis!

Cómo ordenar factores en R

Sabemos que S es más chico que M que es más chico que G. Pero cómo hacemos para que R sepa eso?

Para decirle a R que el factor tiene algún orden tenemos que agregar la opción orderer = TRUE. Mantenemos la recodificación de la sección anterior.

Volviendo a R, creamos el factor ordenado agregando el orden. después copiamos parte de lo de arriba y cambiamos el orden en levels y labels… y ya está

# ordenando niveles (copiar factor anterior)
tallas_ordenado <- factor(tallas,
                          ordered = TRUE,
                          levels = c("S", "m", "M", "g"),
                          labels = c("S", "M", "M", "G"))

si miramos el factor vemos que ahora los niveles tienen símbolos de “menor que”

# viendo el orden en los niveles
tallas_ordenado
factores ordenados en r

si hacemos la gráfica otra vez, vemos que ahora sí se muestra en el orden que queríamos Esto se ve mucho mejor! excelente!

grafica de factores ordenados en r

Conclusión sobre factores en R

Antes de terminar quiero hacer una pequeña conclusión…

Fíjate que el proceso para llegar a la última gráfica fue por pasos pequeños… Esto es muy importante porque en la vida real muy pocas personas pueden programar todo de una vez. Primero empezamos con algo muy sencillo, luego sobre eso agregamos otra cosa fácil de entender y así…

Si te ha gustado comparte este artículo con el mundo!

Te mando un saludo donde quiera que estés!