English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Factores en R

因子用于存储不同类别的数据类型,例如人的性别有男和女两个类别,年龄来分可以有未成年人和成年人。

R 语言创建因子使用  factor() 函数,向量作为输入参数。

factor() 函数语法格式:

factor(x = character(), levels, labels = levels,
       exclude = NA, ordered = is.ordered(x), nmax = NA)

Descripción de los parámetros:

  • x:向量。

  • levels:指定各水平值, 不指定时由x的不同值来求得。

  • labels:水平的标签, 不指定时用各水平值的对应字符串。

  • exclude:排除的字符。

  • ordered:逻辑值,用于指定水平是否有序。

  • nmax:水平的上限数量。

以下示例把字符型向量转换成因子:

x <- c("男", "女", "男", "男",  "女")
sex <- factor(x)
print(sex)
print(is.factor(sex))

El resultado de ejecutar el código anterior es:

[1] 男 女 男 男 女
Niveles: Hombre Mujer
[1] TRUE

以下示例设置因子水平为 c('男','女'):

x <- c("男", "女", "男", "男",  "女",levels=c('男','女'))
sex <- factor(x)
print(sex)
print(is.factor(sex))

El resultado de ejecutar el código anterior es:

levels1 levels2 
男      女      男      男      女      男      女 
Niveles: Hombre Mujer
[1] TRUE

Etiquetas de niveles de factor

A continuación, usaremos el parámetro labels para agregar etiquetas a cada nivel de factor, la secuencia de caracteres del parámetro labels debe coincidir con la secuencia de caracteres del parámetro levels, por ejemplo:

sex=factor(c('f','m','f','f','m'),levels=c('f','m'),labels=c('femenino','masculino'),ordered=TRUE)
print(sex)

El resultado de ejecutar el código anterior es:

[1] femenino masculino femenino femenino masculino  
Niveles: femenino < masculino

Generación de niveles de factor

Podemos usar la función gl() para generar niveles de factor, la forma gramatical es la siguiente:

gl(n, k, length = n*k, labels = seq_len(n), ordered = FALSE)

Descripción de los parámetros:

  • n: Establecer el número de niveles

  • k: Establecer el número de veces que se repite cada nivel

  • length:  Establecer la longitud

  • labels: Establecer el valor del nivel

  • ordenado: Establecer si el nivel está ordenado, valor booleano.

v <- gl(3, 4, labels = c("Google", "w3codebox,"Taobao")
print(v)

El resultado de ejecutar el código anterior es:

 [1] Google Google Google Google w3codebox w3codebox w3codebox w3codebox Taobao Taobao
[11] Taobao Taobao
Niveles: Google w3codebox Taobao