Come eseguire la pulizia dei dati in r (con esempio)


La pulizia dei dati si riferisce al processo di trasformazione dei dati grezzi in dati adatti all’analisi o alla costruzione di modelli.

Nella maggior parte dei casi, la “pulizia” di un set di dati implica la gestione dei valori mancanti e dei dati duplicati.

Ecco i metodi più comuni per “pulire” un set di dati in R:

Metodo 1: rimuovere le righe con valori mancanti

 library (dplyr)

#remove rows with any missing values
df %>% na. omit ()

Metodo 2: sostituisci i valori mancanti con un altro valore

 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 ))))

Metodo 3: rimuovere le righe duplicate

 library (dplyr)

df %>% distinct(. keep_all = TRUE )

Gli esempi seguenti mostrano come utilizzare ciascuno di questi metodi nella pratica con il seguente frame di dati in R che contiene informazioni su vari giocatori di basket:

 #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

Esempio 1: eliminare le righe con valori mancanti

Possiamo utilizzare la seguente sintassi per rimuovere righe con valori mancanti in qualsiasi colonna:

 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

Tieni presente che il nuovo frame di dati non contiene righe con valori mancanti.

Esempio 2: sostituisci i valori mancanti con un altro valore

Possiamo utilizzare la seguente sintassi per sostituire i valori mancanti con il valore mediano di ciascuna colonna:

 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

Tieni presente che i valori mancanti in ciascuna colonna numerica sono stati sostituiti ciascuno con il valore mediano della colonna.

Tieni presente che puoi anche sostituire la mediana nella formula con la media per sostituire i valori mancanti con il valore medio di ciascuna colonna.

Nota : in questo esempio abbiamo dovuto caricare anche il pacchetto Tidyr perché la funzione drop_na() proviene da quel pacchetto.

Esempio 3: rimuovere le righe duplicate

Possiamo utilizzare la seguente sintassi per sostituire i valori mancanti con il valore mediano di ciascuna colonna:

 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

Si noti che la seconda riga è stata rimossa dal frame di dati perché ciascuno dei valori nella seconda riga era duplicato dei valori nella prima riga.

Nota : puoi trovare la documentazione completa per la funzione dplyr distinti() qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come raggruppare e riassumere i dati in R
Come creare tabelle di riepilogo in R
Come eliminare le righe con valori mancanti in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *