Gardez vos projets R organisés avec le package "project"
1. Gardez vos projets organisés
avec le package « project »
François Guillem
fguillem@ludostat.fr
2. Objectif
Un package pour arrêter de réfléchir à des
questions triviales de type :
• Où devrais-je enregistrer ce fichier ?
• A quoi il sert ce script déjà ?
• Mais elles sont où ces ?#!??# données ?
• J’ai besoin de cette fonction mais je sais plus où elle
est définie !
3. Objectif
Un framework minimaliste et souple pour :
• Se concentrer sur la démarche statistique
• Travailler plus efficacement
• Améliorer la lisibilité d’un projet
• Améliorer la reproductibilité d’une étude
4. Initialisation
Création d’un nouveau projet avec Rstudio. Puis :
library(project)
prInit()
Trois sous-dossiers créés :
— data pour les données
— scripts pour les scripts
— output pour les résultats
5. Initialisation
Trois scripts :
• data.R : importation dans R des données externes et
préparation pour l’analyse
• main.R : analyse des données et génération des résultats
• start.R : Instructions techniques exécutées chaque fois que le
projet est ouvert (chargement de librairies, de données,
définition de constantes, etc.)
Pour les gros projets, data.R et main.R ne
contiennent pas de code, mais une explication
de la démarche et des références aux scripts qui
font le boulot
6. Gestion des scripts
Créer de nouveaux scripts avec la fonction « prScript »
Des commentaires pré-remplis vous incitent à
commenter vos scripts
Convention:
• Un script qui importe et prépare des données commence par
« data »
• Un script d’analyse commence par « analysis »
• Un script à exécuter au démarrage du projet commence par
« tools »
7. Gestion des données
Utilisez « prSave » et « prLoad » pour
enregistrer ou charger un objet
x <- 1:10
prSave("x")
prLoad("x”)
Décrivez l’objet avec le paramètre « desc »
prSave("x", desc = "Simple vector")
prLoad("x")
# Integer vector 'x' has been loaded (saved on 2016-
05-28 10:50:10):
# Simple vector
8. Bonnes pratiques
• Commentez beaucoup ! (entre 30% et 50% des lignes)
• Le projet doit contenir tout ce qui est nécessaire pour
reproduire données et résultats
• Indiquez dans « data.R » toutes les opérations réalisées
en dehors de R sur les données
• Ecrivez des fonctions dans des scripts séparés pour
améliorer la lisibilité des scripts principaux
• Pour les gros projets, data.R et main.R ne contiennent
pas de code, mais une explication de la démarche et
des références aux scripts qui font le boulot
9. Développements futurs
Gestion des résultats:
• Fonctions prWrite.***, prPdf, prPng, etc.
• Ex : prWrite.csv("mydata") écrit le tableau « mydata »
dans « output/mydata.csv »
• Fonction prOptions pour modifier les valeurs par défaut
de ces fonctions (taille des graphiques, police, etc.)
10. Instructions d’installation et d’utilisation :
https://github.com/cuche27/project
N’hésitez pas à utiliser, partager et
contribuer !