3.3 Factores

Un factor en R es un tipo de vector con un enfoque estadístico que se usa para variables categóricas.

La característica de un factor es que tiene un número limitado de valores llamados niveles.

Existen dos tipos de variables categóricas: nominal u ordinal. En R un factor también se puden definir de esta forma.

Las variables categóricas son comunes en bases de datos de encuestas.

3.3.1 Variable categórica nominal

Un ejemplo de variable categórica nominal es el sexo de una persona: femenino (F) o masculino (M)

sex_vec <- c("F", "M", "M", "F", "M")

En R un factor se define con la función factor().

sex_fct <- factor(sex_vec)
sex_fct
## [1] F M M F M
## Levels: F M

En automático define los niveles del factor y los ordena en orden alfabético. Si se desea cambiar esto el argumento levels = c() permite asignar un vector de niveles específico.

sex_lev_fct <- factor(sex_vec, levels = c("M", "F"))
sex_lev_fct
## [1] F M M F M
## Levels: M F



3.3.2 Variable categórica ordinal

Una variable categórica ordinal como el nombre lo dice tiene
orden en los niveles del factor.

Para dar orden a los niveles en R se modifica el argumento ordered = TRUE de la función factor().

Se tiene el siguiente vector de temperaturas y se desea crear un factor ordenado de menor temperatura a mayor temperatura.

temp_vec <- c("High", "Low", "Medium", "Low", 
              "Low", "Medium", "High", "Low", 
              "Medium", "Low", "Low")
temp_fct <- factor(temp_vec, 
                   levels = c("Low", "Medium", "High"), 
                   ordered = T)
temp_fct
##  [1] High   Low    Medium Low    Low    Medium High   Low    Medium Low   
## [11] Low   
## Levels: Low < Medium < High

Ahora los niveles tiene una jerarquía.

levels(temp_fct)
## [1] "Low"    "Medium" "High"

Una forma de modificar las etiquetas de los niveles es reasignando un vector.

levels(temp_fct) <- c("L", "M", "H")
temp_fct
##  [1] H L M L L M H L M L L
## Levels: L < M < H



3.3.3 Resúmen de factores

La función summary() permite resumir la información del vector. En particular para un factor calcula la frecuencia de cada nivel, lo que no sucede si es un caracter.

summary(sex_vec)
##    Length     Class      Mode 
##         5 character character
summary(sex_fct)
## F M 
## 2 3


Ej: Analistas

Se tienen 5 analistas, cada uno con las siguientes características de velocidad de trabajo.

Analista 1: rápido Analista 2: normal Analista 3: normal Analista 4: rápido Analista 5: lento

  1. Crea un factor ordinal de analistas
analistas_vec <-  c()
analistas_fct <-  factor(, 
                         levels = , 
                         ordered = )
  1. Comprueba si el analista 2 es más rápido que el analista 5. Tip: es una comparación >.
analistas_vec[] > analistas_vec[]


Este tipo de vector es importante porque los modelos estadísticos que desarrolles más adelante tratan diferente las variable numéricas y las variables categóricas.