Aujourd’hui, nous commencerons notre exploration du package {dplyr} !
Notre premier verbe sur la liste est
select
qui permet de conserver ou de
supprimer des variables de votre dataframe. Choisir vos variables est la
première étape du nettoyage de vos données.
select()
.C’est parti !
Vous pouvez conserver ou supprimer des colonnes d’un dataframe en
utilisant la fonction dplyr::select()
du
package {dplyr}.
Vous pouvez sélectionner une plage ou une combinaison de colonnes
à l’aide d’opérateurs comme le deux-points
(:
), le point d’exclamation
(!
) et la fonction
c()
.
Vous pouvez sélectionner des colonnes en fonction des motifs de
leurs noms avec des fonctions d’aide comme
starts_with()
,
ends_with()
,
contains()
et
everything()
.
Vous pouvez utiliser rename()
et
select()
pour changer les noms des
colonnes.
Dans cette leçon, nous analysons les résultats d’une enquête sérologique sur la COVID-19 menée à Yaoundé, au Cameroun, fin 2020. L’enquête estimait combien de personnes avaient été infectées par la COVID-19 dans la région, en testant les anticorps IgG et IgM. L’ensemble complet des données peut être obtenu sur Zenodo, et l’article peut être consulté ici.
Passez un peu de temps à parcourir cet ensemble de données. Chaque
ligne correspond à un patient interrogé. Il y a des variables
démographiques, socio-économiques et liées à la COVID. Les résultats des
tests d’anticorps IgG et IgM sont dans les colonnes
igg_result
et
igm_result
.
Notez que le jeu de donnée COVID-19 Yaoundé est en anglais !
Pour cette leçon, nous utiliserons cette version en anglais. Mais dans d’autres leçons, nous utiliserons une version partialement en français.
select()
select()
. (Dessin
adapté d’Allison Horst).dplyr::select()
nous permet de choisir
quelles colonnes (variables) conserver ou supprimer.
Nous pouvons sélectionner une colonne par son nom :
Ou nous pouvons sélectionner une colonne par sa position :
Pour sélectionner plusieurs variables, nous les séparons par des virgules :
Sélectionnez les variables poids et taille dans le dataframe
yaounde
.
Sélectionnez les colonnes 16 et 22 dans le dataframe yaounde.
Pour la prochaine partie du tutoriel, créons un sous-ensemble plus
petit des données, appelé yao
.
yao <-
yaounde %>% select(age,
sex,
highest_education,
occupation,
is_smoker,
is_pregnant,
igg_result,
igm_result)
yao
:
L’opérateur :
permet de sélectionner
une plage de variables consécutives :
Nous pouvons également spécifier une plage avec des numéros de colonne :
yaounde
,
sélectionnez les colonnes entre symptoms
et sequelae
, inclusivement.
(“Inclusivement” signifie que vous devriez également inclure
symptoms
et
sequelae
dans la sélection.)!
Le point d’exclamation nie une sélection :
Pour supprimer une plage de colonnes consécutives, nous utilisons,
par exemple, !age:occupation
:
Pour supprimer plusieurs colonnes non consécutives, placez-les à
l’intérieur de !c()
:
yaounde
,
retirez toutes les colonnes entre
highest_education
et
consultation
, inclusivement.select()
dplyr
possède un certain nombre de
fonctions auxiliaires pour faciliter la sélection en utilisant des
motifs des noms de colonnes. Jetons un œil à certaines d’entre
elles.
starts_with()
et ends_with()
Ces deux fonctions auxiliaires fonctionnent exactement comme leurs noms l’indiquent !
contains()
contains()
aide à sélectionner les
colonnes qui contiennent une certaine chaîne :
everything()
Une autre fonction auxiliaire,
everything()
, correspond à toutes les
variables qui n’ont pas encore été sélectionnées.
# D'abord, `is_pregnant`, puis toutes les autres colonnes.
yao %>% select(is_pregnant, everything())
C’est souvent utile pour établir l’ordre des colonnes.
Disons que nous voulions amener la colonne
is_pregnant
au début du dataframe
yao
, nous pourrions écrire manuellement
tous les noms des colonnes :
yao %>% select(is_pregnant,
age,
sex,
highest_education,
occupation,
is_smoker,
igg_result,
igm_result)
Mais ce serait pénible pour des dataframes plus grands, comme notre
dataframe original yaounde
. Dans un tel
cas, nous pouvons utiliser everything()
:
Cette fonction auxiliaire peut être combinée avec beaucoup d’autres.
# Amenez les colonnes qui se terminent par "result" à l'avant du dataframe
yaounde %>% select(ends_with("result"), everything())
Sélectionnez toutes les colonnes dans le dataframe
yaounde
qui commencent par “is_”.
Déplacez les colonnes qui commencent par “is_” au début du
dataframe yaounde
.
rename()
dplyr::rename()
est utilisée pour changer les noms des colonnes :
# Renommez `age` et `sex` en `patient_age` et `patient_sex`
yaounde %>%
rename(patient_age = age,
patient_sex = sex)
Le fait que le nouveau nom vienne en premier dans la fonction
(rename(NOUVEAUNOM = VIEUXNOM)
) est
parfois déroutant. Vous devriez vous y habituer avec le temps.
J’espère que cette première leçon vous a permis de voir à quel point les verbes {dplyr} sont intuitifs et utiles ! Ceci est la première d’une série de verbes de base pour la manipulation de données : rendez-vous à la prochaine leçon pour en savoir plus.
Les membres de l’équipe suivants ont contribué à cette leçon :
Certains matériaux de cette leçon ont été adaptés des sources suivantes :
Horst, A. (2021). Dplyr-learnr. https://github.com/allisonhorst/dplyr-learnr (Œuvre originale publiée en 2020)
Sélectionner des colonnes en utilisant leurs noms et types---Select. (n.d.). Récupéré le 31 décembre 2021, de https://dplyr.tidyverse.org/reference/select.html
L’artwork a été adapté de :