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