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()
## [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.
Utilizamos o comando fct_recode() que funciona da seguinte maneira:
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)"
A recodificação de categorias pode, igualmente, ser feita através de um AddIn. Os Addins são extensões do R que apresentam interface própria.
Para isso, basta instalarmos o pacote questionr
Após a instalação, clicar na aba AddIn, acima do painel de scrip e procurar a opção “Level recoding”.
Uma nova janela se abrirá, permitindo escolher o dataframe a variável a ser recodificada. Após selecionar, clicar na opção “Recoding” no menu na parte de baixo da janela.
A nova janela permitirá escolher os novos nomes das categorias que serão recodificadas.
Ao finalizar clicar em “Done” e o código para a recodificação aparecerá no painel de script.
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)"
Conforme observado no item anterior, o pacote questionr também permite o reordenamento de categorias. Para acessar clicar em AddIns e procurar a opção “Levels ordering”.
Uma nova janela se abrirá, permitindo selecionar o dataframe a variável a ser reordenada. Após selecionar, clicar na opção “Ordering” no menu na parte de baixo da janela.
A nova janela permitirá a nova ordem das categorias. Para determinar a ordem, basta clicar e arrastar as categorias.
Ao finalizar clicar em “Done” e o código para a reordenamento aparecerá no painel de script.