R - Fatores
Fatores são os objetos de dados usados para categorizar os dados e armazená-los como níveis. Eles podem armazenar strings e inteiros. Eles são úteis nas colunas que possuem um número limitado de valores únicos. Como "Masculino," Feminino "e Verdadeiro, Falso etc. Eles são úteis na análise de dados para modelagem estatística.
Fatores são criados usando o factor () função tomando um vetor como entrada.
Exemplo
# Create a vector as input.
data <- c("East","West","East","North","North","East","West","West","West","East","North")
print(data)
print(is.factor(data))
# Apply the factor function.
factor_data <- factor(data)
print(factor_data)
print(is.factor(factor_data))
Quando executamos o código acima, ele produz o seguinte resultado -
[1] "East" "West" "East" "North" "North" "East" "West" "West" "West" "East" "North"
[1] FALSE
[1] East West East North North East West West West East North
Levels: East North West
[1] TRUE
Fatores no quadro de dados
Ao criar qualquer quadro de dados com uma coluna de dados de texto, R trata a coluna de texto como dados categóricos e cria fatores sobre ela.
# Create the vectors for data frame.
height <- c(132,151,162,139,166,147,122)
weight <- c(48,49,66,53,67,52,40)
gender <- c("male","male","female","female","male","female","male")
# Create the data frame.
input_data <- data.frame(height,weight,gender)
print(input_data)
# Test if the gender column is a factor.
print(is.factor(input_data$gender))
# Print the gender column so see the levels.
print(input_data$gender)
Quando executamos o código acima, ele produz o seguinte resultado -
height weight gender
1 132 48 male
2 151 49 male
3 162 66 female
4 139 53 female
5 166 67 male
6 147 52 female
7 122 40 male
[1] TRUE
[1] male male female female male female male
Levels: female male
Mudando a ordem dos níveis
A ordem dos níveis em um fator pode ser alterada aplicando a função de fator novamente com a nova ordem dos níveis.
data <- c("East","West","East","North","North","East","West",
"West","West","East","North")
# Create the factors
factor_data <- factor(data)
print(factor_data)
# Apply the factor function with required order of the level.
new_order_data <- factor(factor_data,levels = c("East","West","North"))
print(new_order_data)
Quando executamos o código acima, ele produz o seguinte resultado -
[1] East West East North North East West West West East North
Levels: East North West
[1] East West East North North East West West West East North
Levels: East West North
Níveis de fator de geração
Podemos gerar níveis de fator usando o gl()função. Leva dois inteiros como entrada que indicam quantos níveis e quantas vezes cada nível.
Sintaxe
gl(n, k, labels)
A seguir está a descrição dos parâmetros usados -
n é um número inteiro que fornece o número de níveis.
k é um número inteiro que fornece o número de replicações.
labels é um vetor de rótulos para os níveis de fator resultantes.
Exemplo
v <- gl(3, 4, labels = c("Tampa", "Seattle","Boston"))
print(v)
Quando executamos o código acima, ele produz o seguinte resultado -
Tampa Tampa Tampa Tampa Seattle Seattle Seattle Seattle Boston
[10] Boston Boston Boston
Levels: Tampa Seattle Boston