Pular para o conteúdo principal

Níveis de fatores em R

Este tutorial usa conteúdo do curso gratuito Intro to R da DataCamp e permite que você pratique Factors.
Atualizado 17 de set. de 2026  · 6 min lido

Explorar com IA

ChatGPTClaudePerplexity

Se você quer fazer nosso curso gratuito Intro to R, aqui está o link.

Níveis de fatores

Quando você recebe um conjunto de dados, é comum notar que ele contém factors com níveis específicos. Porém, às vezes você vai querer mudar os nomes desses níveis para dar mais clareza ou por outros motivos. O R permite fazer isso com a função levels():

levels(factor_vector) <- c("name1", "name2",...)

Um bom exemplo é o dado bruto coletado em uma pesquisa. Uma pergunta comum em qualquer questionário é sobre o sexo da pessoa respondente. Aqui, por simplicidade, só duas categorias foram registradas, "M" e "F". (Em geral, pesquisas exigem mais categorias; de todo modo, você usa um factor para armazenar dados categóricos.)

survey_vector <- c("M", "F", "F", "M", "M")

Registrar o sexo com as abreviações "M" e "F" pode ser prático se você está coletando dados em papel, mas pode gerar confusão na hora de analisar. Nessa etapa, muitas vezes você vai preferir mudar os níveis do factor para "Male" e "Female" em vez de "M" e "F", para ficar mais claro.

Atenção: a ordem em que você atribui os níveis é importante. Se você digitar levels(factor_survey_vector), verá que a saída é [1] "F" "M". Se você não especificar os níveis do factor ao criar o vetor, o R os atribui em ordem alfabética. Para mapear corretamente "F" para "Female" e "M" para "Male", os níveis devem ser definidos como c("Female", "Male"), nessa ordem.

Instruções

  • Confira o código que cria um vetor factor a partir de survey_vector. Você vai usar factor_survey_vector na próxima instrução.
  • Altere os níveis de factor_survey_vector para c("Female", "Male"). Fique de olho na ordem dos elementos.
# no pec survey_vector <- c("M", "F", "F", "M", "M") factor_survey_vector <- factor(survey_vector) # Code to build factor_survey_vector survey_vector <- c("M", "F", "F", "M", "M") factor_survey_vector <- factor(survey_vector) # Specify the levels of factor_survey_vector levels(factor_survey_vector) <- factor_survey_vector # Code to build factor_survey_vector survey_vector <- c("M", "F", "F", "M", "M") factor_survey_vector <- factor(survey_vector) # Specify the levels of factor_survey_vector levels(factor_survey_vector) <- c("Female", "Male") factor_survey_vector msg = "Do not change the definition of survey_vector!" test_object("survey_vector", undefined_msg = msg, incorrect_msg = msg) msg = "Do not change or remove the code to create the factor vector." test_function("factor", "x", not_called_msg = msg, incorrect_msg = msg) # MC-note: ideally would want to test assign operator <-, and have it highlight whole line. # MC-note: or negate this test_student_typed, to highlight where they type this incorrect phrase # test_student_typed('c("Male", "Female")') test_object("factor_survey_vector", eq_condition = "equal", incorrect_msg = paste("Did you assign the correct factor levels to factor_survey_vector? Use levels(factor_survey_vector) <- c(\"Female\", \"Male\"). Remember that R is case sensitive!")) success_msg("Wonderful! Proceed to the next exercise.")

Preste atenção à ordem em que você deve digitar os níveis do factor. Dica: veja a ordem em que os níveis são impressos ao digitar levels(factor_survey_vector).

Resumindo um factor

Depois de concluir este curso, uma das suas funções favoritas no R vai ser summary(). Ela dá uma visão rápida do conteúdo de uma variável:

summary(my_var)

Voltando à nossa pesquisa, você quer saber quantas respostas "Male" tem no estudo e quantas "Female". A função summary() traz essa resposta.

Instruções

Peça um summary() de survey_vector e de factor_survey_vector. Interprete os resultados dos dois vetores. Neste caso, os dois são igualmente úteis?

# Build factor_survey_vector with clean levels survey_vector <- c("M", "F", "F", "M", "M") factor_survey_vector <- factor(survey_vector) levels(factor_survey_vector) <- c("Female", "Male") factor_survey_vector # Generate summary for survey_vector # Generate summary for factor_survey_vector # Build factor_survey_vector with clean levels survey_vector <- c("M", "F", "F", "M", "M") factor_survey_vector <- factor(survey_vector) levels(factor_survey_vector) <- c("Female", "Male") factor_survey_vector # Generate summary for survey_vector summary(survey_vector) # Generate summary for factor_survey_vector summary(factor_survey_vector) msg = "Do not change anything about the first few lines that define survey_vector and factor_survey_vector." test_object("survey_vector", undefined_msg = msg, incorrect_msg = msg) test_object("factor_survey_vector", eq_condition = "equal", undefined_msg = msg, incorrect_msg = msg) msg <- "Have you correctly used summary() to generate a summary for %s?" test_output_contains("summary(survey_vector)", incorrect_msg = sprintf(msg, "survey_vector")) test_output_contains("summary(factor_survey_vector)", incorrect_msg = sprintf(msg, "factor_survey_vector")) success_msg("Nice! Have a look at the output. The fact that you identified \"Male\" and \"Female\" as factor levels in factor_survey_vector enables R to show the number of elements for each category.")

Chame a função summary() para survey_vector e factor_survey_vector. É só isso!

Factors ordenados

Como "Male" e "Female" são níveis de factor não ordenados (ou nominais), o R retorna um aviso dizendo que o operador maior que não faz sentido. Como vimos, o R atribui o mesmo peso aos níveis desses factors.

Mas nem sempre é assim! Às vezes você vai lidar com factors que têm uma ordem natural entre suas categorias. Quando for o caso, é importante passar essa informação para o R...

Suponha que você lidera um time de pesquisa com cinco analistas de dados e quer avaliar o desempenho deles. Para isso, você acompanha a velocidade e classifica cada analista como "slow", "medium" ou "fast", salvando os resultados em speed_vector.

Instruções

Como primeiro passo, atribua a speed_vector um vetor com 5 entradas, uma para cada analista. Cada entrada deve ser "slow", "medium" ou "fast". Use a lista abaixo:

  • Analista 1 é medium,
  • Analista 2 é slow,
  • Analista 3 é slow,
  • Analista 4 é medium e
  • Analista 5 é fast.

Não precisa definir como factors ainda.

# Create speed_vector speed_vector <- # Create speed_vector speed_vector <- c("medium", "slow", "slow", "medium", "fast") test_object("speed_vector", incorrect_msg = "speed_vector should be a vector with 5 entries, one for each analyst's speed rating. Don't use capital letters; R is case sensitive!") success_msg("A job well done! Continue to the next exercise.")

Atribua a speed_vector um vetor contendo as strings "slow", "medium" ou "fast".


Se quiser continuar aprendendo com este curso, aqui está o link.

Confira também o Factors in R Tutorial.

Tópicos
R
Ciência de dados
Data Analysis

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

Tutorial

Criação de uma lista no R

Pratique Listas em R usando o material do curso Intro to R do DataCamp.
Ryan Sheehy's photo

Ryan Sheehy

3 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

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

Pacotes R: Um tutorial para iniciantes

Uma introdução aos pacotes do R com base em 11 das perguntas mais frequentes dos usuários.
DataCamp Team's photo

DataCamp Team

15 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

Ver MaisVer Mais