Factores

Los factores son utilizados para representar categorías y pueden estar ordenadas o desordenadas. Podemos pensar en los factores como un vector de enteros en el que cada entero representa una etiqueta. Los factores son importantes en modelos estadísticos y se utilizan especialmente para modelar junto a funciones como lm() y glm().

El uso de factores con etíquetas es mejor que con enteros puesto que los factores són auto-descriptivos. Por ejemplo, si trabajamos con una variable que tiene los valores "Hombre" y "Mujer" es mejor que si lo hacemos con los valores 1 y 2.

Los objetos factor pueden ser creados con la función factor().

> x <- factor(c("yes", "yes", "no", "yes", "no"))
> x
[1] yes yes no  yes no 
Levels: no yes
> table(x)
x
 no yes 
  2   3
> unclass(x)  ##vemos la representación interna del vector
[1] 2 2 1 2 1
attr(,"levels")
[1] "no"  "yes"
> attr(x,"levels")
[1] "no"  "yes"

A menudo los factores serán creados por nosotros cuando importemos un conjunto de datos con funciones como read.table(). Este tipo de funciones crean factores por defecto cuando encuentran datos de tipo carácter o cadenas de carácteres ("strings").

El orden de los niveles de un factor puede ser establecido utilizando el argumento levels de la función factor(). Esto puede ser importan en modelos liniales puesto que el primer nivel es utilizado como nivel base.

> x <- factor(c("hombre", "hombre", "mujer", "hombre", "mujer"))
> x   ## los niveles son establecidos de forma alfabética
[1] hombre hombre mujer  hombre mujer 
Levels: hombre mujer
> x <- factor(c("hombre", "hombre", "mujer", "hombre", "mujer"),levels = c("mujer", "hombre"))
> x
[1] hombre hombre mujer  hombre mujer 
Levels: mujer hombre