Comment gérer les valeurs NaN dans R (avec exemples)



Dans R, NaN signifie Not a Number.

Généralement, les valeurs NaN se produisent lorsque vous tentez d’effectuer un calcul qui aboutit à un résultat non valide.

Par exemple, diviser par zéro ou calculer le log d’un nombre négatif produit tous deux des valeurs NaN :

#attempt to divide by zero
0 / 0

[1] NaN

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

[1] NaN

Notez que les valeurs NaN sont différentes des valeurs NA , qui représentent simplement des valeurs manquantes.

Vous pouvez utiliser les méthodes suivantes pour gérer les valeurs NaN dans 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.nan(x)]

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

Les exemples suivants montrent comment utiliser chacune de ces méthodes dans la pratique.

Exemple 1 : identifier les positions dans un vecteur avec des valeurs NaN

Le code suivant montre comment identifier les positions dans un vecteur qui contiennent des valeurs 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

À partir du résultat, nous pouvons voir que les éléments en positions 2 et 4 dans le vecteur sont des valeurs NaN.

Exemple 2 : compter les valeurs totales de NaN dans un vecteur

Le code suivant montre comment compter le nombre total de valeurs NaN dans un vecteur dans 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

À partir du résultat, nous pouvons voir qu’il y a 2 valeurs NaN totales dans le vecteur.

Exemple 3 : Supprimer les valeurs NaN dans le vecteur

Le code suivant montre comment créer un nouveau vecteur dont les valeurs NaN ont été supprimées du vecteur d’origine :

#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.nan(x)]

#view new vector
x_new

[1]  1 12 50 30

Notez que les deux valeurs NaN ont été supprimées du vecteur.

Exemple 4 : Remplacer les valeurs NaN dans le vecteur

Le code suivant montre comment remplacer les valeurs NaN dans un vecteur par des zéros :

#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

Notez que les deux valeurs NaN ont été remplacées par des zéros dans le vecteur.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment interpoler les valeurs manquantes dans R
Comment trouver et compter les valeurs manquantes dans R
Comment utiliser « Is Not NA » dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *