Romain Avouac, Lino Galiana
L’activité du statisticien / datascientist tend à se rapprocher de celle du développeur :
Source : Peng R., Reproducible Research in Computational Science, Science (2011)
Note
Quel parcours de formation aux bonnes pratiques en R
?
Git
Git
en pratiqueR
Parcours socle
Partie 1 : contrôle de version avec Git
Git
Partie 2 : bonnes pratiques avec R
Git
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
L’utilisation de Git
nécessite certaines notions préalables:
filesystem
Linux
Mais
RStudio
, Sublime Merge
, VS Code
) qui facilitent l’apprentissagePremiers commits
scripts
script1.R
et script2.R
, chacun contenant quelques commandes R
de votre choixRStudio
commit
, auquel on donnera un message descriptif pertinentscript1.R
et modifier le contenu du fichier script2.R
RStudio
RStudio
Format des commits
R
R
: le Tidyverse style guideREADME
Partie 2 : premiers standards de qualité
R
lintr
et styler
.tidyverse
: lintr::use_lintr(type = "tidyverse")
script.R
: lintr::lint("script.R")
.
script.R
: styler::style_file("script.R")
.styler
est un formatter peu intrusif.RDS
, RData
, fst
, sas7bdat
, etc.).Imaginons la situation suivante :
R
sur mon posteQuels problèmes puis-je rencontrer au fil des projets ?
Est-il facile de partager un de mes projets ?
renv
renv
permet de créer des environnements reproductiblesrenv
enregistre les versions exactes des packages nécessaires au projetUne analyse de données ou une chaîne de production font intervenir des étapes standardisées
Ces étapes peuvent être formalisées sous forme d’un pipeline (direct acyclic graph)
targets
targets
est un framework de modélisation de pipelines spécifiquement dédié aux projets R
.
Deux objectifs majeurs :
pdf
, html
, odt
, etc.)R Markdown
R Markdown
est un package R
qui permet de lier
Markdown
R
qui peut être exécuté et dont les sorties peuvent être intégrées au texteknitr
transforme le texte et les sorties R
en un document Markdown
standardpandoc
transforme le document .md
en un format de sortie standard (html
, pdf
, etc.)Quarto
Quarto
est le successeur de R Markdown
Quarto
supporte différents moteurs de calcul (knitr
, Jupyter
, Observable
..) ce qui le rend nativement multi-langage (R
, Python
, JavaScript
..)Sensibilisation aux bonnes pratiques de self