Vérifier l'appartenance

Nettoyer des données avec R

Maggie Matsui

Content Developer @ DataCamp

Données catégorielles

  • Les variables catégorielles ont un ensemble de valeurs possibles, fixe et connu
Donnée Exemples de valeurs
Statut marital unmarried, married
Catégorie de revenu du foyer 0-20K, 20-40K, ...
Taille de T-shirt S, M, L, XL
Nettoyer des données avec R

Facteurs

  • Dans un factor, chaque catégorie est stockée comme un nombre et possède une étiquette correspondante
Donnée Étiquettes Représentation numérique
Statut marital unmarried, married 1, 2
Catégorie de revenu du foyer 0-20K, 20-40K, ... 1, 2, ...
Taille de T-shirt S, M, L, XL 1, 2, 3, 4
Nettoyer des données avec R

Modalités d'un facteur

tshirt_size
L  XL XL L  M  M  M  L  XL L  S  M  M  S  S  M  XL S  L  S ... 
Levels: S M L XL
levels(tshirt_size)
"S"  "M"  "L"  "XL"
Nettoyer des données avec R

Valeurs hors ensemble

  • Les factors ne peuvent pas contenir de valeurs en dehors de celles prédéfinies
Donnée Modalités Non autorisé
Statut marital unmarried, married divorced
Catégorie de revenu du foyer 0-20K, 20-40K, ... 10-30K
Taille de T-shirt S, M, L, XL S/M
Nettoyer des données avec R

Comment obtient-on ces valeurs ?

 

À gauche, erreurs de saisie représentées par une zone de texte avec curseur pour texte libre et un menu déroulant. À droite, erreurs d'analyse représentées par une base de données.

Nettoyer des données avec R

Joins de filtrage : rappel rapide

  • Conserve ou retire des observations de la première table sans ajouter de colonnes

Titre : Semi-join. Sous-titre : Quelles observations de X sont aussi dans Y ? À gauche, une table à une colonne nommée X avec a, b et c. À droite, une table à une colonne nommée Y avec a, c et d. Les a et c de chaque table sont reliés par des traits. Dans X, les cellules a et c sont surlignées.

Nettoyer des données avec R

Joins de filtrage : rappel rapide

  • Conserve ou retire des observations de la première table sans ajouter de colonnes

Titre : Anti-join. Sous-titre : Quelles observations de X ne sont pas dans Y ? À gauche, une table à une colonne nommée X avec a, b et c. À droite, une table à une colonne nommée Y avec a, c et d. Les a et c de chaque table sont reliés par des traits. Dans X, la cellule b est surlignée.

Nettoyer des données avec R

Exemple : groupe sanguin

study_data
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5 Jennifer 2019-12-17         Z+
6  Kennedy 2020-04-27         A+
7    Keith 2019-04-19        AB+
blood_types
  blood_type
1         O-
2         O+
3         A-
4         A+
5         B+
6         B-
7        AB+
8        AB-
Nettoyer des données avec R

Exemple : groupe sanguin

study_data
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5 Jennifer 2019-12-17         Z+  <--
6  Kennedy 2020-04-27         A+
7    Keith 2019-04-19        AB+
blood_types
  blood_type
1         O-
2         O+
3         A-
4         A+
5         B+
6         B-
7        AB+
8        AB-
Nettoyer des données avec R

Repérer les non-membres

Diagramme de Venn. Le cercle de gauche représente study_data et celui de droite blood types. À gauche : Z+. Au centre : A-, O-, AB+, A+, O+ et B-. À droite : B+ et AB-. Le Z+ à gauche est en rouge.

Nettoyer des données avec R

Anti-join

study_data %>%
  anti_join(blood_types, by = "blood_type")
      name   birthday blood_type
1 Jennifer 2019-12-17         Z+
Nettoyer des données avec R

Retirer les non-membres

Diagramme de Venn. Le cercle de gauche représente study_data et celui de droite blood types. À gauche : Z+. Au centre : A-, O-, AB+, A+, O+ et B-. À droite : B+ et AB-. Les groupes sanguins au centre sont en bleu.

Nettoyer des données avec R

Semi-join

study_data %>%
  semi_join(blood_types, by = "blood_type")
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5  Kennedy 2020-04-27         A+
6    Keith 2019-04-19        AB+
Nettoyer des données avec R

Passons à la pratique !

Nettoyer des données avec R

Preparing Video For Download...