# Carregando o pacote
library(forcats)
library(ggplot2)
O forcats é um pacote bastante simples. Basicamente, ele é composto por funções de apenas dois tipos:
fct_
, que recebem uma lista de
fatores e devolvem um fator.lvls_
, que modificam os níveis
de um fator.fct_relevel()
: Reordena níveis
manualmente;fct_reorder()
: Reordena níveis com
base em outra variável;fct_infreq()
: Reordena níveis por
frequência;fct_lump()
: Agrupa níveis menos
frequentes em “outros”;fct_recode()
: Renomeia níveis;fct_collapse()
: Combina níveis em
grupos;lvls_reorder
: Reordenar os níveis de
um fator;lvls_revalue()
: Renomeando Avaliações;
9.lvls_expand
:Expandindo níveis de um
fator. —library(forcats)
dados <- data.frame(
categoria = factor(c("Lucas C", "Verônica", "Samantha", "Lucas C", "Verônica")),
valor = c(10, 20, 30, 15, 25)
)
dados$categoria <- fct_relevel(dados$categoria, "Lucas C", "Samantha", "Verônica")
dados$categoria
## [1] Lucas C Verônica Samantha Lucas C Verônica
## Levels: Lucas C Samantha Verônica
# Dados com categorias
dados <- data.frame(
categoria = factor(c("Sarah", "Sarah", "Jonas", "Brenda", "Brenda", "Brenda", "Renata"))
)
# Reordenando por frequência
dados$categoria <- fct_infreq(dados$categoria)
dados$categoria
## [1] Sarah Sarah Jonas Brenda Brenda Brenda Renata
## Levels: Brenda Sarah Jonas Renata
# Visualização
Resultado: Os níveis são ordenados do mais frequente (“Brenda”) ao menos frequente (“Renata”).
# Dados com várias categorias
dados <- data.frame(
categoria = factor(c("A", "A", "A", "B", "C", "C", "D", "E", "F"))
)
# Agrupando níveis menos frequentes
dados$categoria <- fct_lump(dados$categoria, n = 2)
dados$categoria
## [1] A A A Other C C Other Other Other
## Levels: A C Other
# Dados de exemplo
dados <- data.frame(
categoria = factor(c("A", "B", "C", "D")),
valor = c(10, 30, 20, 40)
)
# Reordenando por valor (decrescente)
dados$categoria <- fct_reorder(dados$categoria, dados$valor, .desc = TRUE)
dados$categoria
## [1] A B C D
## Levels: D B C A
# Visualização
fator <- factor(c("Ellie", "Joel", "Tommy", "Abby"))
# Alterando apenas uma
fct_recode(fator, carol = "Ellie")
## [1] carol Joel Tommy Abby
## Levels: Abby carol Joel Tommy
# Alterando todas
fct_recode(fator,
Carol = "Ellie",
Pedro = "Joel",
Pedro = "Tommy",
Carol = "Abby")
## [1] Carol Pedro Pedro Carol
## Levels: Carol Pedro
# Dados de exemplo
dados <- data.frame(
genero = factor(c("Ação", "Aventura", "Drama", "Romance", "Comédia", "Ação", "Romance", "Aventura")),
bilheteria = c(100, 150, 80, 90, 120, 110, 95, 140)
)
# Agrupando níveis com fct_collapse
dados$genero <- fct_collapse(dados$genero,
"Ação/Aventura" = c("Ação", "Aventura"),
"Drama/Romance" = c("Drama", "Romance"),
"Outros" = "Comédia")
print(dados$genero)
## [1] Ação/Aventura Ação/Aventura Drama/Romance Drama/Romance Outros
## [6] Ação/Aventura Drama/Romance Ação/Aventura
## Levels: Ação/Aventura Outros Drama/Romance
fator <- factor(c("casado", "viuvo", "solteiro", "divorciado"))
fator
## [1] casado viuvo solteiro divorciado
## Levels: casado divorciado solteiro viuvo
lvls_reorder(fator, c(3, 1, 2, 4))
## [1] casado viuvo solteiro divorciado
## Levels: solteiro casado divorciado viuvo
dados <- data.frame(
Notas = factor(c("Aprovado", "Final", "Aprovado", "Reprovado", "Final")),
pontuacao = c(70, 55, 90, 50, 75)
)
dados$Notas <- lvls_revalue(dados$Notas, c("A", "B", "C"))
print(dados$Notas)
## [1] A B A C B
## Levels: A B C
dados <- data.frame(
nota = factor(c("A", "B", "C", "B", "A")),
frequencia = c(2, 3, 1, 2, 1)
)
dados$nota <- lvls_expand(dados$nota, c("A", "B", "C", "D", "F"))
print(dados$nota)
## [1] A B C B A
## Levels: A B C D F
O forcats
é uma ferramenta poderosa para trabalhar
com variáveis categóricas no R.
Facilita a reordenação, renomeação e agrupamento de níveis.
Ideal para análises exploratórias e visualizações com
ggplot2
.
Referências forcats.tidyverse.org