Formation à la DESE
Romain Avouac, Thomas Faria, Lino Galiana, Tom Seimandi
29 Septembre 2022 et 3 octobre 2022
L’activité du statisticien / datascientist tend à se rapprocher de celle du développeur :
Source : Peng R., Reproducible Research in Computational Science, Science (2011)
Une reproductibilité parfaite est coûteuse
Git
est un standard atteignable et efficient
pour en finir avec ça :
ou ça :
ou encore ça :
prior <- read_csv(prior_path)
prior <- prior %>%
select(id, proba_inter, proba_build, proba_rfl) %>%
separate(id, into = c('nidt', 'grid_id'), sep = ":") %>%
group_by(nidt) %>%
mutate(
proba_build = proba_build/sum(proba_build),
proba_rfl = proba_rfl/sum(proba_rfl),
) %>%
unite(col = "id", nidt, grid_id, sep = ":")
# Test
# prior_test <- prior %>%
# mutate(
# proba_inter = round(proba_inter, 4)
# proba_build = round(proba_build, 4)
# proba_rfl = round(proba_rfl, 4)
# )
write_csv(prior_round, "~/prior.csv")
Pour arriver à ça :
Source : ThinkR
Un modèle distribué
Source : specbee.com
Qui permet l’expérimentation en toute sécurité
Source : lutece.paris.fr
Quel que soit l’environnement de travail
Avec des outils pour faciliter la collaboration
Une vitrine pour vous
Git
L’utilisation de Git
nécessite certaines notions préalables:
filesystem
Linux
Mais
RStudio
, Sublime Merge
, VS Code
) qui facilitent l’apprentissageGit
, GitHub
, GitLab
… quelles différences ?
Git
est un logiciel ;RStudio
, VS Code
…)Git
, GitHub
, GitLab
… quelles différences ?
GitHub
et GitLab
sont des forges logiciellesDépôt local / dépôt distant (remote
)
Source : Collaborative work with R
Workflow (version littéraire) :
Git
que ces fichiers doivent être suivis (staging area
)commit
)push
) après avoir récupéré la version collective (pull
)Workflow (version imagée) :
Source : Git Documentation
Workflow (version imagée complète) :
Action | Commande |
---|---|
Cloner un projet | git clone [url-to-git-repo] |
Afficher les changements | git status |
Retrouver l’URL du dépôt distant | git remote -v |
Action | Commande |
---|---|
Ajouter des changements à l’index de Git |
Un seul fichier : git add <file-name> Tous les fichiers déjà indexés : git add -u Tous les fichiers ⚠️ : git add -A |
Action | Commande |
---|---|
Faire un commit |
git commit -m "message" |
Pousser les changements locaux (branche master ) |
git push origin master |
Récupérer les changements distants (branche master ) |
git pull origin master |
❓ Question : qu’est ce qui différencie le projet cloné d’un projet quelconque ?
❓ Question : à ce stade, le dépôt du projet sur GitHub
(remote
) a-t-il été modifié ?
❓ Question : comment s’assurer que notre projet local est toujours iso au projet distant ?
Que versionne-t-on ?
.html
, .pdf
, modèles…)Format des commits
❓ Question : que se passe-t-il lorsque l’on ajoute au .gitignore
des fichiers qui ont déjà été commit sur le projet Git ?
Git
facilite le travail collaboratif
Git
: modèle des branchesGitHub
/ GitLab
: Issues, Pull Requests, Forks❓ Question : que se serait-il passé si les différents membres du groupe avaient effectué leurs modifications sur un seul et même fichier ?
❓ Question : comment limiter au maximum la survenue des conflits d’historique ?
Description plus détaillée : ici
❓ Question : quelle organisation pour merge dans la branche principale ?
❓ Question : pourquoi, avec un fork
, est-il très important de toujours effectuer une Pull Request
à partir d’une branche différente de la branche principale ?
R
ENSAE
utilitR
propose plusieurs chapitres sur Git
Bonnes pratiques pour les projets statistiques