Prénom Patient.e Sexe / genre date Album in\r\ng/dL
Length:22 Length:22 Length:22 Min. :3.400
Class :character Class :character Class :character 1st Qu.:3.700
Mode :character Mode :character Mode :character Median :3.800
Mean :3.809
3rd Qu.:3.900
Max. :4.200
Fructose mg/dL Glucose mg/dL Na (mmol/L) Globulin g/dL
Mode:logical Min. :81.71 Min. :150 Min. :1.900
NA's:22 1st Qu.:84.87 1st Qu.:150 1st Qu.:2.000
Median :86.91 Median :150 Median :2.100
Mean :87.39 Mean :150 Mean :2.109
3rd Qu.:89.70 3rd Qu.:150 3rd Qu.:2.175
Max. :96.57 Max. :150 Max. :2.600
Comme tu le vois peut-être les noms des colonnes ne sont pas terribles (présence d’un saut de ligne \r, présence de parenthèses, majuscules…).
Il y a aussi des dates mal traduites dans la colonne date et une colonne vide 😬
Améliorer les noms des colonnes
L’uniformisation des noms est facile grâce à la fonction clean_names().
(donnees <- data |>clean_names())
# A tibble: 22 × 8
prenom_patient_e sexe_genre date album_in_g_d_l fructose_mg_d_l
<chr> <chr> <chr> <dbl> <lgl>
1 Paula F 2024-01-01 3.6 NA
2 Pierre M 2024-01-16 3.9 NA
3 Antoine M 2024-01-31 3.6 NA
4 Adrien M 2024-02-15 3.9 NA
5 Alice F 2024-03-01 4.1 NA
6 Sarah F 45398 3.8 NA
7 Louis M 45393 3.7 NA
8 Sophie F 45307 3.7 NA
9 Martin M 2024-02-16 3.7 NA
10 Malmö F 2024-03-02 3.4 NA
# ℹ 12 more rows
# ℹ 3 more variables: glucose_mg_d_l <dbl>, na_mmol_l <dbl>,
# globulin_g_d_l <dbl>
Artwork by @allison_horst
Il est possible de choisir le format de colonne comme le BigCamel, lowerCamel, SCREAMING_SNAKE et d’autre.
# A tibble: 22 × 8
prenomPatientE sexeGenre date albumInGDL fructoseMgDL glucoseMgDL naMmolL
<chr> <chr> <chr> <dbl> <lgl> <dbl> <dbl>
1 Paula F 2024-01… 3.6 NA 92.9 150
2 Pierre M 2024-01… 3.9 NA 89.1 150
3 Antoine M 2024-01… 3.6 NA 89.9 150
4 Adrien M 2024-02… 3.9 NA 85.4 150
5 Alice F 2024-03… 4.1 NA 96.6 150
6 Sarah F 45398 3.8 NA 83.9 150
7 Louis M 45393 3.7 NA 89.9 150
8 Sophie F 45307 3.7 NA 83.9 150
9 Martin M 2024-02… 3.7 NA 86.9 150
10 Malmö F 2024-03… 3.4 NA 83.2 150
# ℹ 12 more rows
# ℹ 1 more variable: globulinGDL <dbl>
Je vais conserver la forme par défaut qui est le snake_case que j’utilise d’habitude.
La fonction make_clean_name() permet la même chose mais sur un vecteur de nom. Ici, appliqué sur la colonne prenom_patient_e elle me permet d’uniformiser les prénoms en retirant les accents, les majuscules, les tirets…
# A tibble: 22 × 8
prenom_patient_e sexe_genre date album_in_g_d_l fructose_mg_d_l
<chr> <chr> <chr> <dbl> <lgl>
1 paula F 2024-01-01 3.6 NA
2 pierre M 2024-01-16 3.9 NA
3 antoine M 2024-01-31 3.6 NA
4 adrien M 2024-02-15 3.9 NA
5 alice F 2024-03-01 4.1 NA
6 sarah F 45398 3.8 NA
7 louis M 45393 3.7 NA
8 sophie F 45307 3.7 NA
9 martin M 2024-02-16 3.7 NA
10 malmo F 2024-03-02 3.4 NA
# ℹ 12 more rows
# ℹ 3 more variables: glucose_mg_d_l <dbl>, na_mmol_l <dbl>,
# globulin_g_d_l <dbl>
Retirer les colonnes vides
La fonction remove_empty() permet de retirer les lignes et/ou les colonnes vides.
value for "which" not specified, defaulting to c("rows", "cols")
# A tibble: 22 × 7
prenom_patient_e sexe_genre date album_in_g_d_l glucose_mg_d_l na_mmol_l
<chr> <chr> <chr> <dbl> <dbl> <dbl>
1 paula F 2024-01-… 3.6 92.9 150
2 pierre M 2024-01-… 3.9 89.1 150
3 antoine M 2024-01-… 3.6 89.9 150
4 adrien M 2024-02-… 3.9 85.4 150
5 alice F 2024-03-… 4.1 96.6 150
6 sarah F 45398 3.8 83.9 150
7 louis M 45393 3.7 89.9 150
8 sophie F 45307 3.7 83.9 150
9 martin M 2024-02-… 3.7 86.9 150
10 malmo F 2024-03-… 3.4 83.2 150
# ℹ 12 more rows
# ℹ 1 more variable: globulin_g_d_l <dbl>
Note
L’argument which par défaut est c("rows", "cols"). C’est cet argument qui permet de choisir de supprimer les lignes et/ou les colonnes vides.
Une fonction associée est remove_constant() qui retire les colonnes constantes (donc les colonnes vides aussi).
# A tibble: 22 × 6
prenom_patient_e sexe_genre date album_in_g_d_l glucose_mg_d_l
<chr> <chr> <chr> <dbl> <dbl>
1 paula F 2024-01-01 3.6 92.9
2 pierre M 2024-01-16 3.9 89.1
3 antoine M 2024-01-31 3.6 89.9
4 adrien M 2024-02-15 3.9 85.4
5 alice F 2024-03-01 4.1 96.6
6 sarah F 45398 3.8 83.9
7 louis M 45393 3.7 89.9
8 sophie F 45307 3.7 83.9
9 martin M 2024-02-16 3.7 86.9
10 malmo F 2024-03-02 3.4 83.2
# ℹ 12 more rows
# ℹ 1 more variable: globulin_g_d_l <dbl>
Traiter les dates excel
Lors du live, je t’ai montré les différentes étapes pour arriver au code ci-dessous qui permet de remplacer les dates format Excel (comme 45398 par exemple) sous un format date yyyy-mm-dd.
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `date = ymd(case_when(str_detect(date, "-") ~ date, TRUE ~
as.character(excel_numeric_to_date(as.numeric(date)))))`.
Caused by warning in `excel_numeric_to_date()`:
! NAs introduits lors de la conversion automatique
# A tibble: 22 × 6
prenom_patient_e sexe_genre date album_in_g_d_l glucose_mg_d_l
<chr> <chr> <date> <dbl> <dbl>
1 paula F 2024-01-01 3.6 92.9
2 pierre M 2024-01-16 3.9 89.1
3 antoine M 2024-01-31 3.6 89.9
4 adrien M 2024-02-15 3.9 85.4
5 alice F 2024-03-01 4.1 96.6
6 sarah F 2024-04-16 3.8 83.9
7 louis M 2024-04-11 3.7 89.9
8 sophie F 2024-01-16 3.7 83.9
9 martin M 2024-02-16 3.7 86.9
10 malmo F 2024-03-02 3.4 83.2
# ℹ 12 more rows
# ℹ 1 more variable: globulin_g_d_l <dbl>
Créer des tableaux résumés rapidement
En plus de bien nettoyer les données, le package {janitor} permet de réaliser rapidement et simplement des tableaux résumés avec des analyses de données.
La première fonction à utiliser est tabyl(), une fonction un peu similaire à count() de {dplyr}.
Il est possible d’ajouter d’un titre aux colonnes grâce à la fonction adorn_title(). Toutes les fonctions commençant par adorn_ permettent de modifier le tableau généré.
Error in adorn_totals(adorn_title(tabyl(donnees, sexe_genre, date)), where = c("row", : at least one targeted column must be of class numeric. Control target variables with the ... argument. adorn_totals should be called before other adorn_ functions.
Enfin les fonctions adorn_percentages() et adorn_pct_formatting() affichent les pourcentages pourcentages pour la première et le nombre entre parenthèses pour la deuxième.