Module 5 - Exercices
STT-1100 Introduction à la science des données
Objectifs du module
À la fin de ce module, vous devriez être capable de
Lectures initiales
📘 Lectures à faire avant l’aventure
Dans ce module, nous allons explorer les concepts de base de l’importation et du nettoyage de données. Voici quelques lectures initiales pour vous préparer :
R for Data Science – Data import
Ce chapitre vous introduit à l’importation de données avec le packagereadr.
R for Data Science – Data tidying
Ce chapitre vous introduit à la manipulation de données avec le packagedplyr.
R for Data Science – Factors
Ce chapitre vous introduit aux facteurs en R, qui sont des variables catégoriques.
> 📝 Note : Bien que ce chapitre soit plus largement utilisé au module 4, certaines fonctions utiles commefactor()oufct_reorder()peuvent déjà vous aider pour manipuler des variables catégoriques (module 3).R for Data Science – Import spreadsheets
Ce chapitre vous introduit à l’importation de données à partir de fichiers Excel.
R for Data Science – Lists
Cette section vous introduit au concept de liste en programmation.
Aventure
Défi
A la fin de l’aventure, vous devez être en mesure d’avoir déposer dans votre dossier Github les éléments suivants :
le script
.qmdde votre aventure, c’est à dire un document ou vous faites vos tests et construisez votre liste journal_nettoyage ;la liste
journal_nettoyagedans un objet.Rdata;la base de données nettoyée au format
.csv.
📝 Exercices de consolidation
Exercice 1 – Lecture contrôlée d’un CSV (Data import, § readr)
Importez policies.csv en :
forçant
policy_iden character ;laissant
premium_amounten double
puis affichez la structure de l’objet.
library(readr)
policies <- read_csv(
"policies.csv",
col_types = cols(
policy_id = col_character(),
premium_amount = col_double()
)
)
glimpse(policies)Exercice 2 – Nettoyage des valeurs manquantes (Data import, ex. 4)
Le fichier contient la chaîne "missing" pour indiquer une absence dans vehicle_type.
Ré-importez le fichier en la convertissant en NA.
policies <- read_csv("policies.csv", na = "missing")Exercice 3 – Passage long ↔︎ large (Data tidy, § pivot)
Les colonnes q1_claims:q4_claims représentent le nombre de réclamations par trimestre.
Mettez-les en long (
quarter,claims).Revenez ensuite en wide.
library(tidyr)
library(dplyr)
pol_long <- policies %>%
pivot_longer(
cols = q1_claims:q4_claims,
names_to = "quarter",
values_to = "claims"
)
pol_wide <- pol_long %>%
pivot_wider(names_from = quarter, values_from = claims)Exercice 5 – Lire une feuille Excel précise (Import spreadsheets, ex. 3)
Le classeur quotes_2024.xlsx possède une feuille « Q3 » où les libellés commencent à la 2ᵉ ligne.
Importez-la et vérifiez les types.
library(readxl)
q3 <- read_excel(
"resources/quotes_2024.xlsx",
sheet = "Q3",
skip = 1 # on saute la première ligne
)
glimpse(q3)Exercice 6 – Parse de nombres avec locale (Data import, ex. 5)
La colonne euro_premium contient « 1 234,56 » (virgule décimale, espace 000).
Parsez-la correctement en double.
library(readr)
parse_number("1 234,56", locale = locale(decimal_mark = ",", grouping_mark = " "))Exercice 7 – Rectangling d’une liste JSON (Lists, ex. 1-2)
Vous disposez d’une liste lst <- jsonlite::read_json("coverage.json").
Récupérez
lst$collision$limit.Transformez
lsten tibble rectangulaire.
library(jsonlite)
library(tidyr)
library(dplyr)
lst <- read_json("coverage.json")
limit <- lst$collision$limit
tbl <- tibble(row = lst) %>%
unnest_wider(row)Exercice 8 – Pipeline express (Synthèse)
En trois lignes :
importez
policies.csv;nettoyez les noms (
janitor::clean_names) ;renvoyez les 5 plus grosses
claim_amountparvehicle_type.
library(readr); library(dplyr); library(janitor)
read_csv(“policies.csv”) %>% clean_names() %>% slice_max(claim_amount, n = 5, by = vehicle_type) ```