Inspection des données brutes

Fonctions pour inspecter les données brutes

Base R (l'installation de base de R) comprend des fonctions permettant d'inspecter les données brutes. La fonction View() affiche les données dans un tableau triable dans lequel on peut effectuer des recherches. C'est utile pour effectuer des contrôles manuels des données brutes.

Dans ce chapitre, nous travaillons avec les données rhc, présentées au chapitre précédent. Si vous ne les avez pas encore téléchargées, vous pouvez le faire en suivant les instructions du chapitre précédent.

View(rhc)

Voici la fenêtre qui s'ouvre lorsque vous utilisez View() :

Fenêtre RStudio obtenue avec View(rhc), montrant le jeu de données rhc sous forme de tableau triable avec des colonnes telles que age, alb1, ca et cat1

En haut de la fenêtre se trouvent des fonctions qui permettent de filtrer le jeu de données, de parcourir les colonnes et d'effectuer une recherche dans l'ensemble du jeu de données. Ces fonctions sont indiquées sur l'image ci-dessous.

Fenêtre View dans RStudio avec des flèches pointant vers les boutons permettant d'ouvrir dans une nouvelle fenêtre, de filtrer, de parcourir les colonnes et de rechercher

Nous poursuivons avec head() et tail(), qui affichent respectivement les 5 premières et les 5 dernières lignes de notre data frame. Vous pouvez modifier ce nombre en indiquant le nombre de lignes souhaité comme deuxième argument de ces fonctions.

## 3 premières lignes
head(rhc, 3)

## 2 dernières lignes
tail(rhc, 3)

Résultat de head() :

adld3p <int> age <dbl> alb1 <dbl> amihx <int> aps1 <int> bili1 <dbl> ca <chr> card <chr> cardiohx <int>
0 70.25098 3.500000 0 46 1.0097656 Yes Yes 0
NA 78.17896 2.599609 0 50 0.6999512 No No 1
NA 46.09198 3.500000 0 82 1.0097656 Yes Yes 0

Résultat de tail() :

adld3p <int> age <dbl> alb1 <dbl> amihx <int> aps1 <int> bili1 <dbl> ca <chr> card <chr> cardiohx <int>
1 80.48499 4.099609 0 43 1.000000 No No 1
NA 67.37897 3.500000 0 51 1.009766 No No 0
NA 54.66397 3.000000 0 101 21.796875 No No 0

Le package dplyr propose la fonction glimpse(), qui donne une vue d'ensemble des données. Appliquons maintenant glimpse() à rhc :

glimpse(rhc)
Sortie de glimpse(rhc) avec 5 735 lignes et 63 colonnes, le type de chaque variable et ses premières valeurs
La sortie est abrégée.

La fonction glimpse() donne ainsi un aperçu rapide des variables présentes dans le data frame, de leur type et des valeurs des premières variables.

La fonction summary() permet de même de produire une description de toutes les variables. Par rapport à glimpse(), summary() fournit des mesures de tendance centrale et de dispersion pour chaque variable, comme le montre l'exemple suivant :

summary(rhc)
Sortie de summary(rhc) avec minimum, quartiles, médiane, moyenne et maximum pour chaque variable

La fonction summary() peut être appliquée à une seule colonne en y faisant référence avec $ après le nom de notre data frame :

summary(rhc$age)
Sortie de summary(rhc$age) : minimum 18,04, médiane 64,05, moyenne 61,38 et maximum 101,85 ans

Pour afficher les valeurs d'une seule colonne, on utilise la même méthode que ci-dessus. Le nom de la colonne est précédé de $, comme suit :

rhc$age
 [1]  70.25098  78.17896  46.09198  75.33197  67.90997  86.07794  54.96799  43.63898  18.04199  48.42398  34.44199  68.34796  74.70996  42.23700  81.97095  78.30499
  [17]  88.42200  69.00195  41.42899  67.50397  50.59000  62.68900  42.05298  23.11299  62.10797  39.82999  47.75598  36.70099  71.20099  95.53699  67.27997  73.49194
  [33]  71.49597  54.79300  36.13397  61.43997  55.97299  51.39999  54.31097  67.74298  59.90399  21.09200  94.07495  41.33899  80.38300  58.04199  32.07397  80.58295
  [49]  70.61200  80.18896  56.76898  85.29498  63.91498  78.08600  83.37000  61.86697  85.31995  42.92398  47.97498  58.03400  49.82898  69.19098  25.40999  68.40198
  [65]  63.54797  38.91599  77.32495  58.80099  66.32196  60.65399  66.89398  63.48297  25.51399  83.35895  42.28598  57.46997  76.43500  80.03796  49.52798  40.78000
  [81]  69.15295  68.70099  45.57397  59.29099  81.24597  72.81897  53.52197  39.73199  93.02399  54.08600  43.99500  64.11200  70.51599  87.13995  79.79199  46.58698
  [97]  87.70996  83.56195  86.17096  49.99899  30.56499  65.08099  63.88498  47.82498  41.83698  49.68698  57.09198  55.13797  44.31998  56.30899  75.12897  76.84900
 [113]  57.98999  69.40198  65.39600  79.93195  71.90997  77.19397  66.08398  20.58899  60.27100  54.08398  81.93597  36.18100  86.26996  74.68298  28.19399  86.14899
 [129]  80.60498  42.01498  34.11600  82.24799  78.70795  53.31400  71.98395  67.73700  80.45697  82.41998  88.17200  76.21399

Sélection des colonnes à inspecter

Les fonctions de dplyr sont précieuses pour sélectionner et transformer des colonnes. Voici plusieurs exemples, expliqués dans les commentaires du code :

## Inspecte les 3 premières colonnes, hema, renalhx et
## toutes les colonnes entre transhx:trauma et trauma
rhc %>%
  select(1:3, hema, renalhx, transhx:trauma)
adld3p <int> age <dbl> alb1 <dbl> hema <chr> renalhx <int> transhx <int> trauma <chr>
0 70.25098 3.5000000 No 0 0 No
NA 78.17896 2.5996094 No 0 1 No
NA 46.09198 3.5000000 No 0 0 No
NA 75.33197 3.5000000 No 0 0 No
NA 67.90997 3.5000000 No 0 0 No
0 86.07794 3.0996094 No 0 0 No
NA 54.96799 3.5000000 No 0 0 No
NA 43.63898 2.6997070 No 0 1 No
NA 18.04199 3.0000000 Yes 0 0 No
NA 48.42398 2.5000000 No 0 0 No

Vous pouvez ajouter un View() tout à la fin pour inspecter l'ensemble des données brutes, comme suit :

rhc %>%
  select(1:3, hema, renalhx, transhx:trauma) %>%
  View()

Lorsque le code ci-dessus est exécuté, une fenêtre contenant les données brutes s'affiche.

Vous pouvez restreindre les patients inspectés en utilisant d'autres fonctions de dplyr :

rhc %>%
  # Ne conserve que les patients âgés de plus de 50 ans avec card==Yes
  filter(age>50, card=="Yes") |>
  # Sélectionne les variables
  select(1:3, hema, renalhx, transhx:trauma) |>
  # Conserve les 100 premières lignes
  slice(1:100) |>
  # Ouvre la fenêtre
  View()

Lorsque le code ci-dessus est exécuté, une fenêtre contenant les données brutes s'affiche.