Limpeza de dados refere-se ao processo de transformação de dados brutos em dados adequados para análise ou construção de modelos.

Na maioria dos casos, "limpar" um conjunto de dados envolve lidar com valores em falta e dados duplicados.

Eis as formas mais comuns de "limpar" um conjunto de dados em R:

Método 1: Remover linhas com valores em falta

 library (dplyr) #remove as linhas com valores em falta df %>% na. omit () 

Método 2: Substituir valores em falta por outro valor

 library (dplyr) library (tidyr) #substituir os valores em falta em cada coluna numérica pelo valor mediano da coluna 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 seguintes mostram como utilizar cada um destes métodos na prática com a seguinte estrutura de dados em R que contém informações sobre vários jogadores de basquetebol:

 #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 rebounds assists 1 A 4 9 2 2 A 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 H 13 12 NA 10 I 8 11 14 

Exemplo 1: Remover linhas com valores em falta

Podemos utilizar a seguinte sintaxe para remover linhas com valores em falta em qualquer coluna:

 library (dplyr) #remover linhas com valores em falta new_df % na. omit () #ver nova estrutura de dados new_df equipa pontos ressaltos assistências 1 A 4 9 2 2 A 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 

Repare que o novo quadro de dados não contém quaisquer linhas com valores em falta.

Exemplo 2: Substituir valores em falta por outro valor

Podemos utilizar a seguinte sintaxe para substituir quaisquer valores em falta pelo valor mediano de cada coluna:

 library (dplyr) library (tidyr) #substituir os valores em falta em cada coluna numérica pelo valor mediano da coluna new_df % mutate(across(where(is. numeric ),~replace_na(.,median(.,na. rm = TRUE )))) #ver a nova estrutura de dados new_df equipa pontos ressaltos assistências 1 A 4 9 2.0 2 A 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 H 13 12 6.5 10 I 8 11 14.0 

Repare que os valores em falta em cada coluna numérica foram substituídos pelo valor mediano da coluna.

Note que também pode substituir mediana na fórmula com média para, em vez disso, substituir os valores em falta pelo valor médio de cada coluna.

Nota : Também tivemos de carregar o tidyr neste exemplo, porque o pacote drop_na() vem deste pacote.

Exemplo 3: Remover linhas duplicadas

Podemos utilizar a seguinte sintaxe para substituir quaisquer valores em falta pelo valor mediano de cada coluna:

 library (dplyr) #remover linhas duplicadas new_df % distinct(. keep_all = TRUE ) #ver nova estrutura de dados new_df equipa pontos ressaltos assistências 1 A 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 H 13 12 NA 9 I 8 11 14 

Observe que a segunda linha foi removida do quadro de dados porque cada um dos valores na segunda linha eram duplicatas dos valores na primeira linha.

Nota : Pode encontrar a documentação completa para o dplyr distintos() função aqui.