Como realizar a limpeza de dados em r (com exemplo)
A limpeza de dados refere-se ao processo de transformação de dados brutos em dados adequados para análise ou construção de modelo.
Na maioria dos casos, “limpar” um conjunto de dados envolve lidar com valores ausentes e dados duplicados.
Aqui estão os métodos mais comuns para “limpar” um conjunto de dados em R:
Método 1: remover linhas com valores ausentes
library (dplyr) #remove rows with any missing values df %>% na. omit ()
Método 2: Substitua os valores ausentes por outro valor
library (dplyr) library (tidyr) #replace missing values in each numeric column with median value of column df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE ))))
Método 3: remover linhas duplicadas
library (dplyr) df %>% distinct(. keep_all = TRUE )
Os exemplos a seguir mostram como usar cada um desses métodos na prática com o seguinte quadro de dados em R que contém informações sobre vários jogadores de basquete:
#create data frame df <- data. frame (team=c('A', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'), points=c(4, 4, NA, 8, 6, 12, 14, 86, 13, 8), rebounds=c(9, 9, 7, 6, 8, NA, 9, 14, 12, 11), assists=c(2, 2, NA, 7, 6, 6, 9, 10, NA, 14)) #view data frame df team points rebound assists 1 to 4 9 2 2 to 4 9 2 3 B NA 7 NA 4 C 8 6 7 5 D 6 8 6 6 E 12 NA 6 7 F 14 9 9 8 G 86 14 10 9:13:12 NA 10 I 8 11 14
Exemplo 1: Excluir linhas com valores ausentes
Podemos usar a seguinte sintaxe para remover linhas com valores ausentes em qualquer coluna:
library (dplyr) #remove rows with missing values new_df <- df %>% na. omit () #view new data frame new_df team points rebound assists 1 to 4 9 2 2 to 4 9 2 4 C 8 6 7 5 D 6 8 6 7 F 14 9 9 8 G 86 14 10 10 I 8 11 14
Observe que o novo quadro de dados não contém nenhuma linha com valores ausentes.
Exemplo 2: Substitua os valores ausentes por outro valor
Podemos usar a seguinte sintaxe para substituir os valores ausentes pelo valor mediano de cada coluna:
library (dplyr) library (tidyr) #replace missing values in each numeric column with median value of column new_df <-df %>% mutate(across(where(is. numeric ),~replace_na(.,median(.,na. rm = TRUE )))) #view new data frame new_df team points rebound assists 1 to 4 9 2.0 2 to 4 9 2.0 3 B 8 7 6.5 4 C 8 6 7.0 5 D 6 8 6.0 6 E 12 9 6.0 7 F 14 9 9.0 8 G 86 14 10.0 9:13 12 6.5 10 I 8 11 14.0
Observe que os valores ausentes em cada coluna numérica foram substituídos pelo valor mediano da coluna.
Observe que você também pode substituir a mediana na fórmula pela média para substituir os valores ausentes pelo valor médio de cada coluna.
Nota : Também tivemos que carregar o pacote Tidyr neste exemplo porque a função drop_na() vem desse pacote.
Exemplo 3: Remover linhas duplicadas
Podemos usar a seguinte sintaxe para substituir os valores ausentes pelo valor mediano de cada coluna:
library (dplyr) #remove duplicate rows new_df <- df %>% distinct(. keep_all = TRUE ) #view new data frame new_df team points rebound assists 1 to 4 9 2 2 B NA 7 NA 3 C 8 6 7 4 D 6 8 6 5 E 12 NA 6 6 F 14 9 9 7 G 86 14 10 8:13:12 NA 9 I 8 11 14
Observe que a segunda linha foi removida do quadro de dados porque cada um dos valores da segunda linha eram duplicatas dos valores da primeira linha.
Nota : Você pode encontrar a documentação completa para a função dplyr distinto() aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como agrupar e resumir dados em R
Como criar tabelas de resumo em R
Como deletar linhas com valores ausentes em R