Comment utiliser na.omit dans R (avec exemples)



Vous pouvez utiliser la fonction na.omit() dans R pour supprimer tous les cas incomplets dans un vecteur, une matrice ou un bloc de données.

Cette fonction utilise la syntaxe de base suivante :

#omit NA values from vector
x <- na.omit(x)

#omit rows with NA in any column of data frame
df <- na.omit(df)

#omit rows with NA in specific column of data frame
df <- df[!(is.na(df$column)), ]

Les exemples suivants montrent comment utiliser cette fonction dans la pratique.

Exemple 1 : Omettre les valeurs NA du vecteur

Le code suivant montre comment omettre toutes les valeurs NA d’un vecteur :

#define vector
x <- c(1, 24, NA, 6, NA, 9)

#omit NA values from vector
x <- na.omit(x)

x

[1]  1 24  6  9
attr(,"na.action")
[1] 3 5
attr(,"class")
[1] "omit"

La première ligne de la sortie affiche le vecteur sans valeurs NA tandis que les deux lignes suivantes affichent des informations supplémentaires sur l’emplacement des valeurs NA.

Nous pouvons utiliser le code suivant pour renvoyer simplement le vecteur sans les valeurs NA :

#define vector
x <- c(1, 24, NA, 6, NA, 9)

#omit NA values from vector
x <- as.numeric(na.omit(x))

x

[1]  1 24  6  9

Exemple 2 : Omettre les lignes avec NA dans n’importe quelle colonne du bloc de données

Le code suivant montre comment omettre toutes les lignes avec des valeurs NA dans n’importe quelle colonne d’un bloc de données :

#define data frame
df <- data.frame(x=c(1, 24, NA, 6, NA, 9),
                 y=c(NA, 3, 4, 8, NA, 12),
                 z=c(NA, 7, 5, 15, 7, 14))

#view data frame
df

   x  y  z
1  1 NA NA
2 24  3  7
3 NA  4  5
4  6  8 15
5 NA NA  7
6  9 12 14

#omit rows with NA value in any column data frame
df <- na.omit(df)

#view data frame 
df

   x  y  z
2 24  3  7
4  6  8 15
6  9 12 14

Exemple 3 : Omettre les lignes avec NA dans une colonne spécifique du bloc de données

Pour omettre les lignes avec des valeurs NA dans une colonne spécifique d’un bloc de données, il est en fait plus facile d’utiliser la fonction is.na() comme suit :

#define data frame
df <- data.frame(x=c(1, 24, NA, 6, NA, 9),
                 y=c(NA, 3, 4, 8, NA, 12),
                 z=c(NA, 7, 5, 15, 7, 14))

#view data frame
df

   x  y  z
1  1 NA NA
2 24  3  7
3 NA  4  5
4  6  8 15
5 NA NA  7
6  9 12 14

#remove rows with NA value in x column
df <- df[!(is.na(df$x)), ]

#view data frame 
df

   x  y  z
1  1 NA NA
2 24  3  7
4  6  8 15
6  9 12 14

Ressources additionnelles

Comment utiliser « Is Not NA » dans R
Comment utiliser is.null dans R
Comment imputer les valeurs manquantes dans R
Comment remplacer les NA par des chaînes dans R

Ajouter un commentaire

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