Come usare na.rm per gestire i valori mancanti in R
Impostiamo na.rm = TRUE nelle funzioni R più comuni per escludere i valori mancanti (NA). Questo ci aiuta a calcolare statistiche accurate e migliora l’affidabilità dei risultati.
I dati vengono generati e consumati a ritmo industriale per guidare decisioni aziendali chiave. Tuttavia, una sfida comune nell’analisi dei dati è la presenza di valori mancanti. Questo può alterare i risultati, rendendo inevitabile per qualsiasi data analyst gestirli in modo efficace. In R, uno degli strumenti fondamentali per gestire i valori mancanti è il parametro na.rm.
Questo post spiega l’importanza di gestire i dati mancanti, come funziona na.rm in R, ne mostra l’uso in varie funzioni e conclude illustrando alcune tecniche alternative per identificare e gestire i valori mancanti.
La risposta breve: cos’è na.rm?
Il parametro na.rm in R sta per "NA remove" e ignora i valori NA (mancanti) durante i calcoli. Impostando na.rm = TRUE, funzioni come mean(), sum(), min(), max(), median() e sd() calcolano i risultati senza essere influenzate dai valori mancanti.
Il parametro na.rm, scritto in minuscolo, accetta un valore booleano—TRUE o FALSE. Quando impostiamo na.rm = TRUE, R esclude i valori NA dai calcoli. Senza questo parametro, le funzioni restituirebbero NA se nel dato sono presenti valori mancanti. Guarda qui.
vector_with_na <- c(1,2,NA)
sum(vector_with_na, na.rm =TRUE)# removes NA values — returns 3
sum(vector_with_na)# includes NA values — returns NA
sum(vector_with_na, na.rm =FALSE)# includes NA values — returns NAOfferto da
Dai un’occhiata al corso Introduction to R per approfondire le basi della programmazione in R.
Perché usare na.rm?
Gestire i valori mancanti è fondamentale nell’analisi dei dati per garantire risultati accurati, poiché possono influenzare in modo significativo i calcoli statistici e portare inavvertitamente a conclusioni errate. Usare na.rm rende pratico evitare errori saltando questi valori mancanti, eseguendo così calcoli affidabili e mantenendo l’integrità dei dati.
Il corso Data Cleaning in R è prezioso per far progredire le nostre competenze di analisi dei dati.
Funzioni comuni che usano na.rm: alcuni esempi pratici
Ora vediamo come usare na.rm in R. Diverse funzioni di R includono il parametro na.rm (impostato su FALSE per impostazione predefinita). Ecco alcuni esempi comuni:
sum()
Come suggerisce il nome, sum() calcola il totale dei valori in un vettore. Creiamo un vettore chiamato vector_with_na, che useremo per tutto il tutorial.
vector_with_na <- c(1,2,NA,4)
sum(vector_with_na)# Returns NA
sum(vector_with_na, na.rm =TRUE)# Returns 7Offerto da
mean()
Usando lo stesso esempio, la funzione mean() calcola la media, ossia la media aritmetica dei valori nel nostro vettore.
mean(vector_with_na)# Returns NA
mean(vector_with_na, na.rm =TRUE)# Returns 2.33Offerto da
sd()
Continuando con vector_with_na, sd() calcola la deviazione standard del vettore.
sd(vector_with_na)# Returns NA
sd(vector_with_na, na.rm =TRUE)# Returns 1.53Offerto da
min()
min() trova il valore minimo.
min(vector_with_na)# Returns NA
min(vector_with_na, na.rm =TRUE)# Returns 1Offerto da
max()
max() trova il valore massimo.
max(vector_with_na)# Returns NA
max(vector_with_na, na.rm =TRUE)# Returns 4Offerto da
median()
median() trova il valore centrale una volta ordinati i dati.
median(vector_with_na)# Returns NA
median(vector_with_na, na.rm =TRUE)# Returns 2Offerto da
Nota che in assenza di na.rm = TRUE tutte queste funzioni di aggregazione restituiscono NA.
Impostando na.rm = TRUE, queste funzioni escludono i valori NA, portando a calcoli accurati e significativi. Il percorso di competenze R Programming Fundamentals può essere una buona risorsa per comprendere meglio l’uso e la sintassi di queste funzioni.
Gestire i valori mancanti in diverse strutture dati
Vediamo come gestire i valori mancanti in diverse strutture dati. Prima di continuare, dai un’occhiata al nostro tutorial Mastering Data Structures in the R Programming Language se vuoi saperne di più sulle strutture dati in R.
Vettori
Nei vettori, na.rm può essere usato direttamente nelle funzioni per escludere i valori mancanti. Gli esempi della sezione precedente mostrano tutti na.rm in azione sui vettori.
Data frame
Per i data frame, na.rm può essere applicato all’interno delle funzioni usate su colonne specifiche o sulle righe usando apply() come mostrato di seguito:
MARGIN: argomento per identificare dove applicare la funzione:
MARGIN=1 per operare sulle righe
MARGIN=2 per operare sulle colonne
MARGIN=c(1,2) per operare sia su righe che su colonne
FUN: indica quale funzione applicare. Possono essere applicate funzioni integrate come mean(), median(), sum(), min(), max() e funzioni definite dall’utente.
Creiamo un data frame che useremo come riferimento per tutto il tutorial.
La funzione lapply() in R viene usata per applicare una funzione specifica a ciascun elemento di una lista, vettore o data frame e restituisce una lista della stessa lunghezza. Questa funzione non richiede un parametro MARGIN, poiché applica automaticamente l’operazione a tutti gli elementi.
vector_with_na: La lista, il vettore o il data frame di input.
fun: La funzione da applicare a ciascun elemento dell’input.
Comprendiamo lapply() con un esempio su una lista. Qui abbiamo una lista di collezioni (item_1 e item_2) con elementi simili al data frame (dataframe_with_na). L’obiettivo è trovare la media di ciascuna collezione.
La funzione sapply() è simile a lapply() ma restituisce un array o una matrice invece di una lista. Usiamo la lista (list_with_na) e sapply() per calcolare la media dei valori di ciascuna collezione al suo interno.
sapply(list_with_na, mean)# Returns# a b # NA NA
sapply(list_with_na, mean, na.rm =TRUE)# Returns# a b # 3.333333 5.333333Offerto da
Ora usiamo il data frame (dataframe_with_na) e sapply() per calcolare la somma dei valori di ciascuna colonna.
sapply(dataframe_with_na, sum)# Returns# col1 col2 # NA NA
sapply(dataframe_with_na, sum, na.rm=TRUE)# Returns# col1 col2 # 10 16Offerto da
Per una comprensione più ampia della manipolazione dei dati in R, il corso Data Manipulation with dplyr è altamente consigliato. Se ti senti insicuro in particolare sulla famiglia di funzioni apply(), leggi il nostro Tutorial on the R Apply Family.
Confronto con na.omit() e complete.cases()
na.omit(): questa funzione rimuove tutte le righe che contengono valori NA in un data frame. Vediamolo con un esempio:
complete.cases(): invece, complete.cases() identifica le righe senza alcun valore NA e restituisce un booleano corrispondente a ciascuna riga (FALSE per le righe con NA e viceversa). Questo può essere usato per filtrare i valori non mancanti nel data frame, come mostrato sotto.
Oltre a na.rm, R offre metodi avanzati per gestire i dati mancanti:
Usare is.na() per identificare i valori mancanti
is.na() può essere applicata direttamente a un vettore o a un data frame per identificare i dati mancanti. Restituisce TRUE per ciascun valore mancante.
È interessante notare che la funzione summary() si comporta in modo diverso rispetto all’uso di na.rm nella gestione dei valori mancanti. Per impostazione predefinita, summary() esclude automaticamente i valori mancanti quando calcola le statistiche riassuntive e successivamente riporta il numero di NA presenti nei dati.
Eseguiamo summary() sul vettore vector_with_na:
summary(vector_with_na)#Returns# Min. 1st Qu. Median Mean 3rd Qu. Max. NA's # 1.000 1.500 2.000 2.333 3.000 4.000 1Offerto da
E sul data frame dataframe_with_na:
summary(dataframe_with_na)# Returns# col1 col2 # Min. :1.00 Min. :4.00 # 1st Qu.:2.50 1st Qu.:4.75 # Median :3.00 Median :5.00 # Mean :3.25 Mean :5.25 # 3rd Qu.:3.75 3rd Qu.:5.50 # Max. :6.00 Max. :7.00 Offerto da
Il corso Intermediate R offre approfondimenti per chi è interessato a tecniche di gestione dei dati più avanzate.
Buone pratiche per gestire i valori mancanti
Gestire efficacemente i valori mancanti comporta diverse buone pratiche:
Controlla sempre la presenza di valori mancanti
Identifica e comprendi l’entità dei dati mancanti prima di eseguire i calcoli. Nell’esempio seguente vediamo che il data frame ha un totale di 2 valori mancanti.
Verifica sempre la presenza di dati mancanti e applica di conseguenza eventuali tecniche di imputazione, assicurandoti di gestire bene tutti i casi limite.
Comprendi perché i dati sono mancanti e scegli un metodo appropriato per gestirli — rimozione o imputazione.
Per un approccio strutturato all’analisi dei dati e alla gestione dei valori mancanti, il corso Data Cleaning in Rpuò essere una grande risorsa.
Conclusione
Capire e usare na.rm è fondamentale per garantire un’analisi dei dati affidabile e accurata. Esercitati a usare na.rm nei progetti R ed esplora tecniche avanzate per gestire in modo completo i dati mancanti.
Per approfondire, esplora queste risorse aggiuntive:
Data Cleaning: Migliora le tue competenze di analisi dati con il nostro corso Data Cleaning in R.
Introduction to R: Inizia a programmare in R con il nostroIntroduction to R.
Sono una stratega ed eticista dell’AI che lavora all’intersezione tra data science, prodotto e ingegneria per creare sistemi di machine learning scalabili. Inserita tra i "Top 200 Business and Technology Innovators" al mondo, ho la missione di democratizzare il machine learning e di eliminare il gergo tecnico affinché tutti possano partecipare a questa trasformazione.
Domande frequenti
Che cos’è il parametro na.rm in R?⌄
Il parametro na.rm in R sta per "NA remove". Quando impostato su TRUE, indica alle funzioni di ignorare i valori NA (mancanti) durante i calcoli, garantendo risultati accurati.
Come si usa na.rm nelle funzioni comuni di R?⌄
Puoi usare na.rm in funzioni come sum(), mean(), sd(), min(), max() e median() impostando na.rm = TRUE per escludere i valori mancanti dai calcoli.
Perché è importante gestire i valori mancanti nell’analisi dei dati?⌄
I valori mancanti possono alterare i risultati e portare a conclusioni inaccurate. Gestirli in modo efficace garantisce calcoli affidabili e mantiene l’integrità dei dati.
Si può usare na.rm con data frame e liste in R?⌄
Sì, na.rm può essere usato con i data frame tramite funzioni come apply(), e con le liste usando lapply() e sapply(), per escludere i valori mancanti durante le operazioni su queste strutture dati.
Quali sono alcune tecniche avanzate per gestire i valori mancanti in R?⌄
Oltre a na.rm, tecniche avanzate includono l’uso di is.na() per identificare i valori mancanti, l’applicazione di metodi di imputazione per sostituirli e l’utilizzo di funzioni come na.omit() e complete.cases() per pulizie dei dati più complesse.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
I dati vengono generati e consumati a ritmo industriale per guidare decisioni aziendali chiave. Tuttavia, una sfida comune nell’analisi dei dati è la presenza di valori mancanti. Questo può alterare i risultati, rendendo inevitabile per qualsiasi data analyst gestirli in modo efficace. In R, uno degli strumenti fondamentali per gestire i valori mancanti è il parametro
na.rm.Questo post spiega l’importanza di gestire i dati mancanti, come funziona
na.rmin R, ne mostra l’uso in varie funzioni e conclude illustrando alcune tecniche alternative per identificare e gestire i valori mancanti.La risposta breve: cos’è na.rm?
Il parametro
na.rmin R sta per "NA remove" e ignora i valoriNA(mancanti) durante i calcoli. Impostandona.rm = TRUE, funzioni comemean(),sum(),min(),max(),median()esd()calcolano i risultati senza essere influenzate dai valori mancanti.Il parametro
na.rm, scritto in minuscolo, accetta un valore booleano—TRUEoFALSE. Quando impostiamona.rm = TRUE, R esclude i valoriNAdai calcoli. Senza questo parametro, le funzioni restituirebberoNAse nel dato sono presenti valori mancanti. Guarda qui.Dai un’occhiata al corso Introduction to R per approfondire le basi della programmazione in R.
Perché usare na.rm?
Gestire i valori mancanti è fondamentale nell’analisi dei dati per garantire risultati accurati, poiché possono influenzare in modo significativo i calcoli statistici e portare inavvertitamente a conclusioni errate. Usare
na.rmrende pratico evitare errori saltando questi valori mancanti, eseguendo così calcoli affidabili e mantenendo l’integrità dei dati.Il corso Data Cleaning in R è prezioso per far progredire le nostre competenze di analisi dei dati.
Funzioni comuni che usano na.rm: alcuni esempi pratici
Ora vediamo come usare
na.rmin R. Diverse funzioni di R includono il parametrona.rm(impostato suFALSEper impostazione predefinita). Ecco alcuni esempi comuni:sum()
Come suggerisce il nome,
sum()calcola il totale dei valori in un vettore. Creiamo un vettore chiamatovector_with_na, che useremo per tutto il tutorial.mean()
Usando lo stesso esempio, la funzione
mean()calcola la media, ossia la media aritmetica dei valori nel nostro vettore.sd()
Continuando con
vector_with_na,sd()calcola la deviazione standard del vettore.min()
min()trova il valore minimo.max()
max()trova il valore massimo.median()
median()trova il valore centrale una volta ordinati i dati.Nota che in assenza di
na.rm = TRUEtutte queste funzioni di aggregazione restituisconoNA.Impostando
na.rm = TRUE, queste funzioni escludono i valoriNA, portando a calcoli accurati e significativi. Il percorso di competenze R Programming Fundamentals può essere una buona risorsa per comprendere meglio l’uso e la sintassi di queste funzioni.Gestire i valori mancanti in diverse strutture dati
Vediamo come gestire i valori mancanti in diverse strutture dati. Prima di continuare, dai un’occhiata al nostro tutorial Mastering Data Structures in the R Programming Language se vuoi saperne di più sulle strutture dati in R.
Vettori
Nei vettori,
na.rmpuò essere usato direttamente nelle funzioni per escludere i valori mancanti. Gli esempi della sezione precedente mostrano tuttina.rmin azione sui vettori.Data frame
Per i data frame,
na.rmpuò essere applicato all’interno delle funzioni usate su colonne specifiche o sulle righe usandoapply()come mostrato di seguito:Qui:
X: un array, data frame o matriceMARGIN: argomento per identificare dove applicare la funzione:MARGIN=1per operare sulle righeMARGIN=2per operare sulle colonneMARGIN=c(1,2)per operare sia su righe che su colonneFUN: indica quale funzione applicare. Possono essere applicate funzioni integrate comemean(),median(),sum(),min(),max()e funzioni definite dall’utente.Creiamo un data frame che useremo come riferimento per tutto il tutorial.
Liste
La funzione
lapply()in R viene usata per applicare una funzione specifica a ciascun elemento di una lista, vettore o data frame e restituisce una lista della stessa lunghezza. Questa funzione non richiede un parametroMARGIN, poiché applica automaticamente l’operazione a tutti gli elementi.Sintassi:
Qui:
: La lista, il vettore o il data frame di input.vector_with_nafun: La funzione da applicare a ciascun elemento dell’input.Comprendiamo
lapply()con un esempio su una lista. Qui abbiamo una lista di collezioni (item_1eitem_2) con elementi simili al data frame (dataframe_with_na). L’obiettivo è trovare la media di ciascuna collezione.La funzione
sapply()è simile alapply()ma restituisce un array o una matrice invece di una lista. Usiamo la lista (list_with_na) esapply()per calcolare la media dei valori di ciascuna collezione al suo interno.Ora usiamo il data frame (
dataframe_with_na) esapply()per calcolare la somma dei valori di ciascuna colonna.Per una comprensione più ampia della manipolazione dei dati in R, il corso Data Manipulation with dplyr è altamente consigliato. Se ti senti insicuro in particolare sulla famiglia di funzioni apply(), leggi il nostro Tutorial on the R Apply Family.
Confronto con na.omit() e complete.cases()
na.omit(): questa funzione rimuove tutte le righe che contengono valoriNAin un data frame. Vediamolo con un esempio:complete.cases(): invece,complete.cases()identifica le righe senza alcun valoreNAe restituisce un booleano corrispondente a ciascuna riga (FALSEper le righe conNAe viceversa). Questo può essere usato per filtrare i valori non mancanti nel data frame, come mostrato sotto.Tecniche avanzate per gestire i valori mancanti
Oltre a
na.rm, R offre metodi avanzati per gestire i dati mancanti:Usare is.na() per identificare i valori mancanti
is.na()può essere applicata direttamente a un vettore o a un data frame per identificare i dati mancanti. RestituisceTRUEper ciascun valore mancante.Applicare metodi di imputazione
L’imputazione sostituisce i valori mancanti con valori stimati, come la media o la mediana, come mostrato di seguito:
Usare la funzione summary()
È interessante notare che la funzione
summary()si comporta in modo diverso rispetto all’uso dina.rmnella gestione dei valori mancanti. Per impostazione predefinita,summary()esclude automaticamente i valori mancanti quando calcola le statistiche riassuntive e successivamente riporta il numero diNApresenti nei dati.Eseguiamo
summary()sul vettorevector_with_na:E sul data frame
dataframe_with_na:Il corso Intermediate R offre approfondimenti per chi è interessato a tecniche di gestione dei dati più avanzate.
Buone pratiche per gestire i valori mancanti
Gestire efficacemente i valori mancanti comporta diverse buone pratiche:
Controlla sempre la presenza di valori mancanti
Identifica e comprendi l’entità dei dati mancanti prima di eseguire i calcoli. Nell’esempio seguente vediamo che il data frame ha un totale di 2 valori mancanti.
Usa controlli condizionali
Verifica sempre la presenza di dati mancanti e applica di conseguenza eventuali tecniche di imputazione, assicurandoti di gestire bene tutti i casi limite.
Considera il contesto
Comprendi perché i dati sono mancanti e scegli un metodo appropriato per gestirli — rimozione o imputazione.
Per un approccio strutturato all’analisi dei dati e alla gestione dei valori mancanti, il corso Data Cleaning in R può essere una grande risorsa.
Conclusione
Capire e usare
na.rmè fondamentale per garantire un’analisi dei dati affidabile e accurata. Esercitati a usarena.rmnei progetti R ed esplora tecniche avanzate per gestire in modo completo i dati mancanti.Per approfondire, esplora queste risorse aggiuntive: