Gestione Dei Dati Mancanti
I dati mancanti sono un problema comune nei dataset del mondo reale. Possono influire sull'accuratezza dell'analisi e portare a risultati fuorvianti se non vengono gestiti correttamente.
Rilevamento dei valori mancanti
Il primo passo è verificare dove e in quale quantità mancano i dati nel dataset.
is.na(df) # returns a logical matrix of TRUE/FALSE
sum(is.na(df)) # total number of missing values
colSums(is.na(df)) # missing values per column
Questo fornisce un'idea chiara di quali colonne presentano dati mancanti e della gravità del problema.
Rimozione dei valori mancanti
A volte il modo più semplice per gestire i dati mancanti è rimuovere le righe che contengono qualsiasi valore NA
. Questo garantisce che il dataset sia pulito, ma può anche comportare una significativa perdita di dati se molte righe sono interessate.
Base R
La funzione na.omit()
rimuove tutte le righe con valori mancanti dal dataset.
df_clean <- na.omit(df)
sum(is.na(df_clean))
dplyr
La stessa operazione può essere eseguita utilizzando la funzione drop_na()
.
df_clean <- df %>%
drop_na()
Questo approccio è semplice e funziona bene quando la quantità di dati mancanti è ridotta, ma potrebbe non essere ideale se molte righe vengono rimosse nel processo.
Sostituzione dei valori mancanti
Invece di eliminare le righe, un approccio più efficace è l'imputazione, in cui i valori mancanti vengono sostituiti con stime significative. Questo consente di preservare la dimensione del dataset riducendo il bias. Una strategia comune per le variabili numeriche è sostituire i valori mancanti con la media della colonna.
Base R
È possibile utilizzare l'indicizzazione logica con is.na()
per individuare i valori mancanti e assegnare loro la media della colonna.
df$selling_price[is.na(df$selling_price)] <- mean(df$selling_price, na.rm = TRUE)
dplyr
È inoltre possibile gestire l'imputazione utilizzando ifelse()
all'interno di mutate()
.
df <- df %>%
mutate(selling_price = ifelse(is.na(selling_price),
mean(selling_price, na.rm = TRUE),
selling_price))
Riempimento dei valori mancanti nelle colonne categoriche
Per le variabili categoriche (colonne di tipo character o factor), i valori mancanti vengono spesso sostituiti con un segnaposto fisso come "Unknown"
.
Base R
df$fuel[is.na(df$fuel)] <- "Unknown"
dplyr
La funzione replace_na()
offre un modo più ordinato per riempire i valori mancanti.
df <- df %>%
mutate(fuel = replace_na(fuel, "Unknown"))
Questo approccio garantisce che i valori mancanti vengano gestiti in modo coerente e che la colonna rimanga valida per la reportistica o la modellizzazione.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain the difference between removing and imputing missing values?
How do I decide whether to drop or fill missing data in my dataset?
Can you show more examples of handling missing values in R?
Awesome!
Completion rate improved to 4
Gestione Dei Dati Mancanti
Scorri per mostrare il menu
I dati mancanti sono un problema comune nei dataset del mondo reale. Possono influire sull'accuratezza dell'analisi e portare a risultati fuorvianti se non vengono gestiti correttamente.
Rilevamento dei valori mancanti
Il primo passo è verificare dove e in quale quantità mancano i dati nel dataset.
is.na(df) # returns a logical matrix of TRUE/FALSE
sum(is.na(df)) # total number of missing values
colSums(is.na(df)) # missing values per column
Questo fornisce un'idea chiara di quali colonne presentano dati mancanti e della gravità del problema.
Rimozione dei valori mancanti
A volte il modo più semplice per gestire i dati mancanti è rimuovere le righe che contengono qualsiasi valore NA
. Questo garantisce che il dataset sia pulito, ma può anche comportare una significativa perdita di dati se molte righe sono interessate.
Base R
La funzione na.omit()
rimuove tutte le righe con valori mancanti dal dataset.
df_clean <- na.omit(df)
sum(is.na(df_clean))
dplyr
La stessa operazione può essere eseguita utilizzando la funzione drop_na()
.
df_clean <- df %>%
drop_na()
Questo approccio è semplice e funziona bene quando la quantità di dati mancanti è ridotta, ma potrebbe non essere ideale se molte righe vengono rimosse nel processo.
Sostituzione dei valori mancanti
Invece di eliminare le righe, un approccio più efficace è l'imputazione, in cui i valori mancanti vengono sostituiti con stime significative. Questo consente di preservare la dimensione del dataset riducendo il bias. Una strategia comune per le variabili numeriche è sostituire i valori mancanti con la media della colonna.
Base R
È possibile utilizzare l'indicizzazione logica con is.na()
per individuare i valori mancanti e assegnare loro la media della colonna.
df$selling_price[is.na(df$selling_price)] <- mean(df$selling_price, na.rm = TRUE)
dplyr
È inoltre possibile gestire l'imputazione utilizzando ifelse()
all'interno di mutate()
.
df <- df %>%
mutate(selling_price = ifelse(is.na(selling_price),
mean(selling_price, na.rm = TRUE),
selling_price))
Riempimento dei valori mancanti nelle colonne categoriche
Per le variabili categoriche (colonne di tipo character o factor), i valori mancanti vengono spesso sostituiti con un segnaposto fisso come "Unknown"
.
Base R
df$fuel[is.na(df$fuel)] <- "Unknown"
dplyr
La funzione replace_na()
offre un modo più ordinato per riempire i valori mancanti.
df <- df %>%
mutate(fuel = replace_na(fuel, "Unknown"))
Questo approccio garantisce che i valori mancanti vengano gestiti in modo coerente e che la colonna rimanga valida per la reportistica o la modellizzazione.
Grazie per i tuoi commenti!