Pular para o conteúdo principal

Tutorial de factors em R

Aprenda sobre a função factor em R, com exemplo, estrutura, alteração da ordem dos níveis, renomeação de níveis e, por fim, a ordenação de valores categóricos.
Atualizado 17 de set. de 2026  · 5 min lido

Explorar com IA

ChatGPTClaudePerplexity
banner

Factors são variáveis em R que representam dados categóricos e armazenam seus valores em níveis. O uso principal desse recurso aparece em análises de dados, especialmente em estatística. Além disso, ele ajuda a reduzir redundância e economizar memória.

Observação: uma variável categórica assume valores baseados em rótulos ou nomes. Por exemplo, o tipo sanguíneo de uma pessoa pode ser A, B, AB ou O.

função factor

Uso: Categorizar dados com poucos valores distintos.
Parâmetros: factor(v): v pode ser um vetor de valores.

Vamos ver um exemplo de factor em ação.

No código abaixo, há duas variáveis categóricas, "Male" e "Female", também chamadas de valores do factor.

gender <- c("Male","Female","Female","Male","Female")

Vamos criar um factor para gender usando 'factor(gender)' e salvar em uma variável chamada 'gender.factor'.

gender.factor <- factor(gender)
gender.factor
  1. Male
  2. Female
  3. Female
  4. Male
  5. Female
Níveis:
  1. 'Female'
  2. 'Male'

O código acima gera a seguinte saída:

Male Female Female Male Female
Levels:
'Female' 'Male'

Repare que os valores são impressos como no vetor de entrada. Além disso, os "Levels" ("Female" e "Male") são ordenados em ordem alfabética.

estrutura da função factor

Vamos examinar a estrutura do factor usando 'str(gender.factor)' no código abaixo.

str(gender.factor)
 Factor w/ 2 levels "Female","Male": 2 1 1 2 1 
Factor w/ 2 levels "Female","Male": 2 1 1 2 1

A saída mostra um factor com 2 níveis. A função factor converte o vetor de caracteres gender em um vetor de inteiros. "Female" é o primeiro nível, codificado como 1, e "Male" é o segundo nível, codificado como 2.

O objetivo dessa codificação de texto para numérico é representar categorias de forma compacta, evitando repetições redundantes que ocupam muita memória. Usar factor reduz essa carga e economiza espaço.

alterando a ordem dos níveis

Vamos mudar a ordem dos níveis, fazendo com que "Female" passe a ser 2 e "Male" seja 1.

Criaremos um novo factor para gender alterando os níveis de "Male" e "Female" ao passá-los como vetor no argumento "levels". Por fim, salvamos o resultado na variável "gender.factor2".

gender.factor2 <- factor(gender,levels=c("Male","Female"))
gender.factor2
str(gender.factor2)
  1. Male
  2. Female
  3. Female
  4. Male
  5. Female
Níveis:
  1. 'Male'
  2. 'Female'
 Factor w/ 2 levels "Male","Female": 1 2 2 1 2

'gender.factor2' é impresso junto com sua estrutura via 'str(gender.factor2)', onde observamos as seguintes mudanças.

Male Female Female Male Female
 Levels:
'Male' 'Female'
 Factor w/ 2 levels "Male","Female": 1 2 2 1 2

Agora, a codificação de "Male" é 1 e a de "Female" é 2. Isso difere de 'gender.factor', que era o contrário.

renomeando níveis de um factor

Vamos mudar os nomes dos valores do vetor de entrada usando 'levels' como primeiro argumento, com os valores "Male" e "Female", e 'labels' como segundo argumento, com os novos rótulos "Gen_Male" e "Gen_Female".

factor(gender,levels = c("Male","Female"),labels = c("Gen_Male","Gen_Female"))
  1. Gen_Male
  2. Gen_Female
  3. Gen_Female
  4. Gen_Male
  5. Gen_Female
Níveis:
  1. 'Gen_Male'
  2. 'Gen_Female'
Gen_Male Gen_Female Gen_Female Gen_Male Gen_Female
 Levels:
'Gen_Male' 'Gen_Female'

O código acima altera o nome de "Male" para "Gen_Male" e de "Female" para "Gen_Female".

ordenando uma variável categórica

Vamos ver um exemplo com valores categóricos ordinais, em que a ordem importa. Por exemplo, para tamanho de calça, podemos ter L (Large), XL (Extra Large) e XXL (Extra Extra Large) em ordem crescente. O código abaixo cria o vetor de caracteres "L", "XL" e "XXL" armazenado em 'pant'. 'pant.factor' é a variável criada com os níveis em ordem crescente via 'levels = c("L", "XL", "XXL")' e, por fim, 'ordered = TRUE', que permite comparações de acordo com essa ordem.

pant <- c("XL","L","XL","XXL","L","XL")
pant.factor <- factor(pant,ordered = TRUE,levels = c("L","XL","XXL"))
pant.factor
pant.factor[1] > pant.factor[2]
  1. XL
  2. L
  3. XL
  4. XXL
  5. L
  6. XL
Níveis:
  1. 'L'
  2. 'XL'
  3. 'XXL'

TRUE

XL L XL XXL L XL
 Levels:'L'< 'XL' < 'XXL'
TRUE

A saída mostra primeiro os valores do vetor (XL, L, XL, XXL, L, XL) ao imprimir 'pant.factor'. Os níveis 'L' < 'XL' < 'XXL' aparecem em ordem crescente no console. Além disso, 'pant.factor[1] > pant.factor[2]' compara se "XL" é maior que "L" nessa ordenação, resultando em TRUE.

parabéns

Parabéns, você chegou ao fim deste tutorial!

Neste tutorial, você viu a função factor em R, com exemplo, sua estrutura, como alterar a ordem e renomear níveis e, por fim, como ordenar valores categóricos.

Se quiser aprender mais sobre R, faça o curso Introduction to R da DataCamp.

Confira também nosso tutorial sobre uso de funções em R.
 

Tópicos
R
Ciência de dados

Cursos de R

Curso

Introdução ao R

4 h
3.1M
Domine os conceitos básicos de análise de dados em R, incluindo vetores, listas e quadros de dados, e pratique o R com conjuntos de dados reais.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado
multiple linear regression

Tutorial

Regressão linear múltipla no R: Tutorial com exemplos

Uma visão geral completa para entender as regressões lineares múltiplas no R por meio de exemplos.
Zoumana Keita 's photo

Zoumana Keita

12 min

Tutorial

Tutorial de regressão linear no R

Neste tutorial, você aprenderá os fundamentos de um modelo estatístico muito popular: a regressão linear.

Eladio Montero Porras

15 min

Tutorial

Tutorial de análise de componentes principais no R

Neste tutorial, você aprenderá a usar o R PCA (Principal Component Analysis) para extrair dados com muitas variáveis e criar visualizações para exibir esses dados.
Zoumana Keita 's photo

Zoumana Keita

15 min

Tutorial

Tutorial de regressão logística no R

Descubra tudo sobre a regressão logística: como ela difere da regressão linear, como ajustar e avaliar esses modelos no R com a função glm() e muito mais!
Vidhi Chugh's photo

Vidhi Chugh

14 min

Tutorial

Tutorial de Pipes em R para iniciantes

Saiba mais sobre o famoso operador de pipe %>% e outros pipes no R, por que e como você deve usá-los e quais alternativas você pode considerar!
Karlijn Willems's photo

Karlijn Willems

15 min

Tutorial

Decomposição de QR para machine learning

Aprenda sobre a decomposição QR, a técnica de fatoração de matriz que decompõe a matriz A no produto de uma matriz ortogonal Q e uma matriz triangular superior R. Pratique o processo de Gram-Schmidt na programação em R.
Josef Waples's photo

Josef Waples

12 min

Ver MaisVer Mais