Projets R

Ici se trouve une sélection de mes projets réalisés sur R en tant que développeuse chez ThinkR et analyste au département de Loire-Atlantique.

Conversion d’un modèle de projections démographiques

Chaque année le département de Loire-Atlantique publie des fiches de projections démographiques à partir des données du recensement de la population (INSEE).

Pour ce projet, j’ai converti un modèle de projection existant (VBA) en package R, accompagné d’une couverture de test complète et d’une documentation technique (pkgdown) mise à jour automatiquement via GitLab CI/CD.

Dans un second temps, j’ai ajouté au package la possibilité de générer automatiquement l’ensemble des 28 fiches de projections. Cette étape utilise un template Typst respectant la charte graphique du département.

Figure 1: Une section de fiche générée automatiquement par Quarto à partir des données de projections.

Résultat : Le temps total de mise à jour annuelle des fiches de projections est passé de plusieurs jours à quatre minutes. Le risque d’erreur a été minimisé par la suppression de toutes les étapes manuelles.

Lien fiches projections

Mise en package d’un modèle de distribution d’espèces

Dans le cadre d’une étude statistique sur l’estimation de stock de poissons, j’ai mis en package un outil permettant d’harmoniser les données de capture hétérogènes.

La mise en package a été réalisée selon la méthode du golden master, où l’on s’assure que chaque modification apportée ne modifie pas le résultat statistique attendu sur un jeu de données test.

La mise en package s’est accompagnée de la rédaction d’une documentation technique et d’un refactoring des paramètres d’entrée des fonctions.

Figure 2: Un exemple de donnée en entrée (gauche) et en sortie (droite) du modèle. Les valeurs hétérogènes sont utilisées pour estimer les stocks sur l’ensemble du territoire.

Résultat : Le package {fishmap} est disponible en open-source. Il est testé, documenté, et s’accompagne d’un manuel d’utilisation et d’un jeu de données test pour une prise en main rapide.

Lien GitHub

Refonte d’une application Shiny pour le suivi d’étude sensorimétrique

Ce projet a pour objectif d’améliorer une application Shiny évaluant la performance sensorimétrique de panels. Ce travail a consisté à refactoriser le code existant et fluidifier l’interface utilisateur.

L’application se base sur un requêtage SQL de la base de données pour proposer à l’utilisateur un choix de produit à sélectionner. Une ANOVA est ensuite réalisée pour chaque critère de notation et retransmise sous forme de rapport téléchargeable.

Ce rapport contient les résultats sous forme de graphiques et de tableaux (ACP, boxplot, heatmap), résumant la capacité du panel à discriminer les produits par critère.

Résultat : L’utilisation de la nouvelle version de l’application a nettement réduit le temps dédié à la construction du rapport statistique, l’expérience utilisateur est fluidifiée tout en enrichissant le contenu graphique de l’application.

Figure 3: Schéma de fonctionnement de l’application, avec un exemple de graphique de sortie.

Développement d’un package de présentation quarto

En tant que formatrice R, il m’a été nécessaire de développer du contenu pédagogique pour mes formations. Le format quarto permet de créer des présentations html, mais uniquement à partir d’un seul fichier source.

Comme les cours sont rédigés chapitre par chapitre, j’ai développé le package {squash}, permettant de générer une présentation à partir de plusieurs fichiers quarto source.

J’ai rédigé sa documentation dans le but qu’il soit accessible à tout utilisateur de R. Pour les développeurs avancés, il est possible de personnaliser le résultat via l’ajout d’extensions et de paramètres d’entrée optionnels.

Figure 4: Le shéma d’action du package : à partir de plusieurs fichiers quarto indépendants, on crée une seule présentation html regroupant l’ensemble du contenu original.

Résultat : Le package {squash} est disponible en open-source. Il est testé, documenté et déployé en continu sur GitHub. Il est utilisé en routine chez ThinkR pour ses formations R.

Lien documentation