4.4 Recodificando variáveis

Às vezes pode ser necessário recodificar as categorias de uma variável no R.

Categorias Relevantes: Agrupar valores em categorias mais amplas pode simplificar a análise e a visualização.

Rótulos Descritivos: Transformar códigos numéricos em rótulos descritivos facilita a compreensão dos dados. Por exemplo, mudar 1 para “Masculino” e 2 para “Feminino” torna a interpretação mais clara.

Valores Faltantes e Outliers: Recodificar valores ausentes (NA) ou outliers em valores padronizados pode melhorar a qualidade dos dados.

Inconsistências: Valores inconsistentes (por exemplo, “Sim”, “sim”, “s”) podem ser recodificados para uma única representação.

Recodificar categorias

Neste exercício vamos recodificar as categorias da variável estado_civil. Começamos verificando suas categorias usando a função unique()

unique(dados$estado_civil)
## [1] "casada(o)"     "viúva(o)"      "solteira(o)"   "separada(o)"   "divorciada(o)"

Digamos que queremos reduzir o número de categorias dessa variável, unificando as categorias Separada(o)/Divorciada(o) em uma só. Para isso temos que instalar e carregar o pacote forcats, conforme instruindo na página inicial desta aula. O pacote forcats faz parte do universo tidyverse e é utilizado para lidar com variáveis categóricas.

library(forcats)

Utilizamos o comando fct_recode() que funciona da seguinte maneira:

dados$variável<-fct_recode("nova categoria"= "categoria antiga")

Vamos testar com o nosso banco de dados. Vamos criar uma nova coluna (dados$estado_civil2) para armazenar nossas novas categorias. Criar uma nova coluna para armazenar valores modificados no R é uma prática recomendada para a manutenção da integridade dos dados originais.

Com a função fct_recode() indicamos que a nova categoria se chamará divorciada(o)/separada(o) e que ela substituirá as categorias divorciada(o) e separada(o). Em seguida rodamos a função levels() para verificar se a recodagem foi bem sucedida.

#Chamar o pacote forcats

library(forcats)

#Recodificar as categorias da variável estado_civil

dados$estado_civil2<- fct_recode(dados$estado_civil, "divorciada(o)/separada(o)" = "divorciada(o)",
"divorciada(o)/separada(o)" = "separada(o)")

#Checar a recodagem

levels(dados$estado_civil2)
## [1] "casada(o)"                 "divorciada(o)/separada(o)" "solteira(o)"              
## [4] "viúva(o)"

Reordenar categorias

Podemos, também reordenar as categorias da variável estado_civil2 utilizando a função fct_relevel(), também inclusa no pacote forcats. Escrevemos as categorias na ordem que desejamos que elas apareçam.Essa função será particularmente útil quando formos criar tabelas e gráficos.

Repare que, ao executar a função levels() temos uma nova ordem de aparição dos fatores, conforme designado.

#Reordenar as categorias da variável estado_civil

dados$estado_civil2 <- dados$estado_civil2 %>%
  fct_relevel("solteira(o)", "casada(o)", "divorciada(o)/separada(o)", "viúva(o)")

#Checar ordem das categorias

levels(dados$estado_civil2)
## [1] "solteira(o)"               "casada(o)"                 "divorciada(o)/separada(o)"
## [4] "viúva(o)"