Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Gestione Dei Dati Mancanti | Manipolazione e Pulizia dei Dati
Analisi dei Dati con R

bookGestione 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 gestiti correttamente.

Rilevamento dei valori mancanti

Il primo passo consiste nel verificare dove e quanto sono presenti dati mancanti 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 permette di identificare chiaramente quali colonne presentano dati mancanti e la gravità del problema.

Rimozione dei valori mancanti

A volte il modo più semplice per gestire i dati mancanti è rimuovere le righe che contengono valori 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

L'imputazione può essere gestita anche 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 una gestione coerente dei valori mancanti e mantiene la colonna valida per la reportistica o la modellazione.

question mark

Come si sostituisce NA nella colonna fuel con "Unknown"?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 10

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 4

bookGestione 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 gestiti correttamente.

Rilevamento dei valori mancanti

Il primo passo consiste nel verificare dove e quanto sono presenti dati mancanti 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 permette di identificare chiaramente quali colonne presentano dati mancanti e la gravità del problema.

Rimozione dei valori mancanti

A volte il modo più semplice per gestire i dati mancanti è rimuovere le righe che contengono valori 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

L'imputazione può essere gestita anche 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 una gestione coerente dei valori mancanti e mantiene la colonna valida per la reportistica o la modellazione.

question mark

Come si sostituisce NA nella colonna fuel con "Unknown"?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 10
some-alt