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