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

Fatores no R

Fatores são usados para armazenar tipos de dados de categorias diferentes, por exemplo, o sexo de pessoas tem dois tipos de categorias: Homem e Mulher, e a idade pode ser dividida em Menores de idade e Adultos.

O R usa a função factor() para criar fatores, onde o vetor é o parâmetro de entrada.

Sintaxe do função factor():

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

Descrição dos Parâmetros:

  • x:vetor.

  • levels:especifica os valores de cada nível, não especificado são calculados pelos diferentes valores de x.

  • labels:etiquetas dos níveis, não especificado usa a string correspondente ao valor de cada nível.

  • exclude:caracteres excluídos.

  • ordered:valor lógico, usado para especificar se os níveis são ordenados.

  • nmax:limite superior do número de níveis.

A seguir, exemplo de conversão de vetor de caracteres em fator:

x <- c("Homem", "Mulher", "Homem", "Homem",  "Mulher")
sex <- factor(x)
print(sex)
print(is.factor(sex))

O resultado da execução do código acima é:

[1]] Homem Mulher Homem Homem Mulher
Níveis: Masculino Feminino
[1] TRUE

A seguir, exemplo de configuração de níveis de fator como c('Homem','Mulher'):

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

O resultado da execução do código acima é:

levels1 levels2 
Homem             Mulher             Homem             Homem             Mulher             Homem             Mulher 
Níveis: Masculino Feminino
[1] TRUE

Rótulos de Níveis de Fator

A seguir, usamos o parâmetro labels para adicionar rótulos a cada nível de fator, a ordem dos caracteres do parâmetro labels deve coincidir com a ordem dos caracteres do parâmetro levels, por exemplo:

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

O resultado da execução do código acima é:

[1] feminino masculino     feminino feminino masculino  
Níveis: feminino < masculino

Geração de Níveis de Fator

Podemos usar a função gl() para gerar níveis de fator, a sintaxe é a seguinte:

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

Descrição dos Parâmetros:

  • n: Definir o número de níveis

  • k: Definir o número de repetições de cada nível

  • length: Definir a comprimento

  • labels: Definir o valor do nível

  • ordenado: Definir se o nível é ordenado, valor booleano.

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

O resultado da execução do código acima é:

 [1] Google Google Google Google w3codebox w3codebox w3codebox w3codebox Taobao Taobao
[11] Taobao Taobao
Níveis: Google w3codebox Taobao