4.2 Removendo dados

A remoção de dados no R é uma prática crucial para garantir a integridade e a precisão das análises de dados. Especialmente, a remoção de valores NA (Not Available) é uma etapa fundamental no pré-processamento de dados.

Valores NA: Presença de valores faltantes pode levar a resultados enganosos ou impedir a execução de certas operações estatísticas.

Valores duplicados: Em certos bancos de dados pode ser necessário guardar apenas valores únicos.

Outros Dados Irrelevantes ou Corrompidos: Dados que não são necessários ou que estão incorretos podem distorcer análises e modelos.

4.2.1 Trabalhando com NAs

Trabalhar com valores ausentes (NA) é uma tarefa comum ao lidar com dados no R.

A função anyNA() indica se existem algum NA naquela variável. Vamos testar para a variável estado_civil.

anyNA(dados$estado_civil)
## [1] TRUE

Já a função is.na() realiza um teste para saber se a variável/coluna possui um valor NA. retorna TRUE se for NA e FALSE se não for.

is.na(dados$estado_civil)

Muitas vezes vamos precisar remover esses valores NA do nosso conjunto de dados para podermos trabalhar de maneira mais precisa. Para remover linhas com valores ausentes de um vetor ou data frame utilizamos o comando complete.cases() no seguinte formato:

unique(dados$estado_civil)
## [1] "casada(o)"     "viúva(o)"      "solteira(o)"   "separada(o)"   "divorciada(o)"
## [6] NA
dados <- dados[complete.cases(dados$estado_civil), ]

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

Algumas funções do R possuem o argumento na.rm, ou semelhantes, para desconsiderar NA no cálculo. Dessa forma não precisamos necessariamente remover os valores NA, eles são apenas excluídos de cálculos de resumo. É o caso da função mean() ou sum()

mean(dados$renda, na.rm=T)
## [1] 141.7053

4.2.2 Remover dados duplicados

Às vezes temos informações duplicadas em nossos bancos de dados e precisamos guardar apenas aqueles que apresentam valores únicos. Para isso, utilizamos a função duplicated e o comando ! (não) para indicar que não queremos guardar linhas que possuam um valor duplicado numa determinada coluna.

# Remover linhas com dados duplicados na coluna idade

duplicados <- dados[!duplicated(dados$idade),]

# Ver dataframe resultante
datatable(duplicados)

O dataframe resultante tem apenas 50 linhas, correspondente aos diferentes valores que temos na variável idade.