Come gestire i valori nan in r (con esempi)


In R, NaN sta per Not a Number.

In genere, i valori NaN si verificano quando si tenta di eseguire un calcolo che restituisce un risultato non valido.

Ad esempio, la divisione per zero o il calcolo del logaritmo di un numero negativo producono entrambi valori NaN:

 #attempt to divide by zero
0 / 0

[1]NaN

#attempt to calculate log of negative value
log(-12)

[1]NaN

Tieni presente che i valori NaN sono diversi dai valori NA , che rappresentano semplicemente i valori mancanti.

È possibile utilizzare i seguenti metodi per gestire i valori NaN in R:

 #identify positions in vector with NaN values
which(is. nan (x))

#count total NaN values in vector
sum(is. nan (x)) 

#remove NaN values in vector
x_new <- x[!is. no (x)]

#replace NaN values in vector
x[is. nan (x)] <- 0 

Gli esempi seguenti mostrano come utilizzare nella pratica ciascuno di questi metodi.

Esempio 1: identificare le posizioni in un vettore con valori NaN

Il codice seguente mostra come identificare le posizioni in un vettore che contiene valori NaN:

 #create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)

#identify positions with NaN values
which(is. nan (x))

[1] 2 4

Dal risultato, possiamo vedere che gli elementi nelle posizioni 2 e 4 nel vettore sono valori NaN.

Esempio 2: conteggio dei valori NaN totali in un vettore

Il codice seguente mostra come contare il numero totale di valori NaN in un vettore in R:

 #create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)

#identify positions with NaN values
sum(is. nan (x))

[1] 2

Dal risultato possiamo vedere che ci sono 2 valori NaN totali nel vettore.

Esempio 3: rimuovere i valori NaN nel vettore

Il codice seguente mostra come creare un nuovo vettore con i valori NaN rimossi dal vettore originale:

 #create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)

#define new vector with NaN values removed
x_new <- x[!is. no (x)]

#view new vector
x_new

[1] 1 12 50 30

Da notare che i due valori NaN sono stati rimossi dal vettore.

Esempio 4: sostituisci i valori NaN nel vettore

Il codice seguente mostra come sostituire i valori NaN in un vettore con zeri:

 #create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)

#replace NaN values with zero
x[is. nan (x)] <- 0

#view updated vector
x

[1] 1 0 12 0 50 30

Si noti che entrambi i valori NaN sono stati sostituiti con zeri nel vettore.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come interpolare i valori mancanti in R
Come trovare e contare i valori mancanti in R
Come utilizzare “Non è NA” in R

Aggiungi un commento

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