-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Targets et RMarkdown dans le livre - Révision des attentes pour le projet
- Loading branch information
Showing
9 changed files
with
375 additions
and
155 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,139 @@ | ||
class: inverse, center, middle | ||
|
||
# Arrimer targets et Rmarkdown | ||
|
||
<hr width="65%" size="0.3" color="orange" style="margin-top:-20px;"></hr> | ||
|
||
--- | ||
|
||
# Un exemple compréhensif | ||
|
||
Un exemple de répertoire avec `targets` et `rmarkdown` est disponible. Le lien se trouve sur Moodle sous la section "Bloc 4" et la rubrique "Exemple *complet* d'un pipeline targets" | ||
|
||
- Explicite les dépendances aux multiples fichiers de données | ||
- Compile un rapport RMarkdown | ||
- Explicite les dépendances du rapport | ||
|
||
--- | ||
|
||
# `targets` + rapport `rmarkdown` | ||
|
||
Structure du dossier principal : | ||
|
||
.left[ | ||
``` | ||
├── data # Dossier de données | ||
│ ├── data.txt # Jeu de données 1 | ||
│ ├── data_2.txt # Jeu de données 2 | ||
├── R # Dossier de scripts R | ||
│ ├── prep_donnees.R # Fonction utilisér comme targets | ||
│ ├── analyse.R # Fonction utilisée comme targets | ||
│ ├── figure.R # Fonction utilisée comme targets | ||
├── resultats # Contient les résultats | ||
│ ├── resultats_modele.csv # Résultats | ||
├── rapport # Contient le rapport et fichiers associés | ||
│ ├── rapport.Rmd # Rapport | ||
│ ├── pnas-sample.bib # Fichier de bibliographie | ||
├── _targets.R # Fichier targets qui définie le pipeline | ||
``` | ||
] | ||
|
||
--- | ||
|
||
# Fichier _targets.R | ||
|
||
.font80[ | ||
```r | ||
# Version bonnifiée du bloc 2 | ||
library(targets) | ||
library(tarchetypes) | ||
source("R/analyse.R") | ||
tar_option_set(packages = c("rmarkdown","knitr")) | ||
list( | ||
tar_target( | ||
name = path, # Cible | ||
command = "./data", # Dossier contenant les fichiers de données | ||
format = "file" # Format de la cible | ||
), | ||
tar_target( | ||
name = file_paths, # Cible | ||
command = list.files(path, full.names = TRUE) # Liste les fichiers dans le dossier | ||
), | ||
tar_target( | ||
name = data, # Cible pour le modèle | ||
command = prep_donnees(file_paths) # Jointure des jeux de données | ||
), | ||
tar_target( | ||
name = resultat_modele, # Cible pour le modèle | ||
command = mon_modele(data) # Exécution de l'analyse | ||
), | ||
tar_render( | ||
name = rapport, # Cible du rapport | ||
path = "rapport/rapport.Rmd" # Le path du rapport à renderiser | ||
) | ||
) | ||
``` | ||
] | ||
|
||
--- | ||
|
||
# Suivre un ensemble de fichiers de données | ||
|
||
1. Une target pour suivre le dossier contenant les données | ||
.font80[ | ||
```r | ||
tar_target( | ||
name = path, # Cible | ||
command = "./data", # Dossier contenant les fichiers de données | ||
format = "file" # Format de la cible | ||
) | ||
``` | ||
] | ||
2. Une target qui liste tous les fichiers du dossier | ||
.font80[ | ||
```r | ||
tar_target( | ||
name = file_paths, # Cible | ||
command = list.files(path, full.names = TRUE) # Liste les fichiers dans le dossier | ||
) | ||
``` | ||
] | ||
3. Une target qui charge les données et les assemblent | ||
.font80[ | ||
```r | ||
tar_target( | ||
name = data, # Cible | ||
command = prep_donnees(file_paths) # Jointure des jeux de données | ||
) | ||
``` | ||
] | ||
|
||
--- | ||
|
||
# Compilation du Rmarkdown | ||
|
||
La librarie `tarchetypes` simplifie la compilation du fichier .Rmd.<br> | ||
Même syntaxe que les autres target `tar_target()` | ||
|
||
```r | ||
install.packages("tarchetypes") | ||
``` | ||
|
||
```r | ||
tar_render(cible, "path/to/file.Rmd") | ||
``` | ||
|
||
<br> | ||
|
||
L'instruction de compilation du fichier .Rmd sera toujours la dernière opération. | ||
|
||
--- |
Oops, something went wrong.