Rattrapage R pour le défi technique 1
Objectif
Cette fiche aide à se préparer au défi technique 1 sans révéler la consigne évaluée. Elle regroupe les gestes à pratiquer avant le défi: structure de projet, importation CSV, nettoyage minimal, assertions, proportion, sauvegarde et README. Les modalités du défi prévoient des comptes Windows sans Internet, des documents papier personnels et des ressources numériques fournies par l’enseignant. Aucun fichier personnel ne peut être importé sur les comptes.
Séquence minimale à pratiquer
Avant le défi, refaire cette séquence sans IA:
- créer les dossiers
data/raw/,data/processed/,R/et le fichierREADME.md; - placer un fichier CSV dans
data/raw/; - créer un script dans
R/; - charger explicitement les packages;
- lire le fichier avec un chemin relatif;
- inspecter les noms, types et valeurs manquantes;
- convertir une date ou une colonne numérique;
- créer une variable dérivée simple;
- écrire au moins cinq assertions pertinentes;
- sauvegarder une version propre dans
data/processed/; - écrire un README court;
- relancer le script dans une session R propre et vérifier que tous les résultats sont recréés.
Structure de projet
Structure recommandée:
defi-technique-1/
data/
raw/
processed/
R/
README.md
Commandes utiles dans R:
dir.create("data/raw", recursive = TRUE, showWarnings = FALSE)
dir.create("data/processed", recursive = TRUE, showWarnings = FALSE)
dir.create("R", recursive = TRUE, showWarnings = FALSE)Importation CSV
Exemple générique:
# Load libraries
library(tidyverse)
# Import data
donnees_brutes <- read_csv(
"data/raw/mon_fichier.csv",
col_types = cols(.default = col_character())
)
# Inspect
glimpse(donnees_brutes)
summary(donnees_brutes)Lire d’abord les colonnes comme texte peut aider à préserver les codes géographiques ou administratifs. Ensuite, convertir explicitement les colonnes nécessaires.
Conversions fréquentes
donnees_propres <- donnees_brutes |>
mutate(
date = lubridate::ymd(date),
population = parse_number(population),
superficie = parse_number(superficie),
densite = population / superficie
)À vérifier:
- une date invalide devient souvent
NA; - un code comme
"01"ne doit pas devenir1si le zéro est significatif; - une colonne numérique importée comme texte doit être convertie avant les calculs;
- une division par zéro ou par une valeur manquante doit être comprise.
Assertions
Une assertion sert à arrêter le script si une hypothèse importante est fausse.
Exemples:
stopifnot(nrow(donnees_propres) > 0)
stopifnot(all(!is.na(donnees_propres$id)))
stopifnot(all(donnees_propres$population >= 0))
stopifnot(all(donnees_propres$superficie > 0))
stopifnot(all(donnees_propres$densite >= 0))Une bonne assertion vérifie une condition importante pour la suite. Une assertion décorative ne protège pas le pipeline.
Sauvegarde
write_csv(donnees_propres, "data/processed/donnees_propres.csv")Ne jamais écraser le fichier brut dans data/raw/.
README minimal
Le README devrait indiquer:
- la source du fichier;
- le script à exécuter;
- deux transformations effectuées;
- deux vérifications ou assertions;
- une limite restante;
- la règle IA respectée.
Calcul bref de proportion
Une proportion rapporte un nombre de cas au nombre total d’observations concernées. Pour une proportion de valeurs manquantes, le dénominateur comprend toutes les lignes du groupe, y compris celles dont la valeur manque. La moyenne d’un indicateur logique peut représenter cette proportion : TRUE compte pour 1 et FALSE pour 0.
Enregistrer le dossier avant la récupération
Enregistrer le script, le README et les résultats à l’emplacement indiqué sur le compte d’examen. L’enseignant récupère directement ce dossier. Aucun dépôt Git, commit, ZIP ou envoi en ligne n’est demandé. Attendre l’autorisation avant de fermer la session.
Erreurs à éviter
- utiliser un chemin absolu;
- travailler dans la console sans script;
- modifier manuellement le fichier brut;
- sauvegarder la donnée propre dans
data/raw/; - oublier de relancer le script depuis une session propre;
- écrire des assertions qui ne testent rien;
- oublier d’enregistrer les fichiers avant la récupération du dossier;
- utiliser l’IA pendant le défi.
Sources utiles
- Wickham, H., Çetinkaya-Rundel, M. et Grolemund, G. (2023). R for Data Science, 2e édition: https://r4ds.hadley.nz/.
- Documentation officielle
readr: https://readr.tidyverse.org/. - Documentation officielle
dplyr: https://dplyr.tidyverse.org/. - Documentation officielle
stringr: https://stringr.tidyverse.org/.