Valori mancanti in R, guida su come gestirli

Spesso in R, analizzando grandi dataset potremmo trovare diversi valori mancanti (missing values). L’ analisi dei valori mancanti fa parte del prepocessing dei dati. I dati mancanti possono essere causati da una varietà di ragioni, come errori di acquisizione dati, errori di input o semplicemente perché alcuni dati non sono disponibili. In R, questi valori mancanti sono rappresentati dal simbolo NA (not available) NON DISPONIBILE. Per quanto riguarda i valori numerici impossibili (per esempio una divisione di un numero per zero) sono rappresentati dal simbolo NaN (not a number) NON UN NUMERO.

Se per esempio dobbiamo calcolare una media o qualsiasi funzione che si prende un numero come argomento, se ci troviamo variabili di tipo Na oppure NaN allora non è possibile applicare la funzione. A tal proposito abbiamo in R la possibilità di gestire questi valori con semplici funzioni:

Informazioni sui valori mancanti

y <- c(1,2,3,NA)
is.na(y)
[1] FALSE FALSE FALSE TRUE

Passando come argomento un vettore, is.na restituisce un vettore con valori booleani dove TRUE corrisponde alla posizione con valori NA.

Assegnare valori mancanti

mydata$naV<- NA

Escludere i valori mancanti dalle analisi in R

NOTA: Qualsiasi funzione aritmetica sui valori mancanti restituisce valori mancanti.

> x <- c(1,2,NA,3)
> mean(x) # restituisce NA
[1] NA
> mean(x, na.rm=TRUE) # restituisce 2
[1] 2

La funzione complete.cases() ci lista un vettore logico dove è messo in evidenza quali valori sono mancanti.

> complete.cases(x)
[1] TRUE TRUE FALSE TRUE
[1] 2

Un altra funzione di semplice utilizzo è na.omit che restituisce l’oggetto escludendo i valori mancanti.

> na.omit(x)
[1] 1 2 3
attr(,"na.action")
[1] 3
attr(,"class")
[1] "omit"

A differenza di SAS, le funzioni di R per i valori mancanti non distingue i dati numerici dagli altri quindi na.omit o na.rm=TRUE esclude sia i valori NA che i valori Nan.

Altri packages R

Se abbiamo l’esigenza di imputare variabili condizionali da altre variabili è possibile utilizzare il package di R Amelia. Un altro package interessante è mice che basa l’imputazione dei valori mancanti su procedure di tipo bayesiano.

Se vuoi approfondire guarda tutti i tutorial di Data input oppure torna su R tutorial.

Lascia una risposta

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

Iscriviti alla nostra newsletter

Tieniti aggiornato sulle ultime novità riguardo la XAI e il Deep Learning.