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ées Exemples de valeurs
État matrimonial unmarried, married
Catégorie de revenu du ménage 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 sous forme de nombre et a une étiquette associée
Données Étiquettes Représentation numérique
État matrimonial unmarried, married 1, 2
Catégorie de revenu du ménage 0-20K, 20-40K, ... 1, 2, ...
Taille de t-shirt S, M, L, XL 1, 2, 3, 4
Nettoyer des données avec R

Niveaux 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 avoir de valeurs hors des niveaux prédéfinis
Données Niveaux Non permis
État matrimonial unmarried, married divorced
Catégorie de revenu du ménage 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 (saisie 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

Jointures filtrantes : bref rappel

  • Garde ou retire des observations du premier tableau sans ajouter de colonnes

Titre : Semi-join. Sous-titre : Quelles observations de X sont aussi dans Y ? À gauche, un tableau à une colonne nommé X avec les valeurs a, b et c. À droite, un tableau à une colonne nommé Y avec les valeurs a, c et d. Les a et c de chaque tableau sont reliés par des lignes. Dans X, les cellules a et c sont en surbrillance.

Nettoyer des données avec R

Jointures filtrantes : bref rappel

  • Garde ou retire des observations du premier tableau sans ajouter de colonnes

Titre : Anti-join. Sous-titre : Quelles observations de X ne sont pas dans Y ? À gauche, un tableau à une colonne nommé X avec les valeurs a, b et c. À droite, un tableau à une colonne nommé Y avec les valeurs a, c et d. Les a et c de chaque tableau sont reliés par des lignes. Dans X, la cellule b est en surbrillance.

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

Trouver les non-membres

Diagramme de Venn. Cercle gauche : study_data. Cercle droit : 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. Cercle gauche : study_data. Cercle droit : 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...