Je cherche à profiter de la possibilité de faire appel à un fichier Rmarkdown dans d’autres fichiers Rmarkdown.
J'y arrive s'ils sont bien en poupées russes mais pas si c'est un fichier d'un dossier frère. Je m'explique.
J'ai un projet .Rproj dans le dossier A et le dossier A contient au même niveau des dossiers B1,B2 et C1, C2, C3. Chaque dossier C1, C2, C3 contient un fichier RmarKdown.
Dans mes dossiers B1 avec synthese1.Rmd et B2 avec synthese2.Rmd je fais des synthèses différentes qui utilisent les fichiers de mes dossiers C1, C2 et C3.
Si je mets directement mon synthese1.Rmd à la racine de A tout va bien, mais si je le mets dans B1 je n'y arrive pas. Or j'aimerais éviter de mélanger dans mon dossier A les fichiers synthese1.Rmd et synthese2.Rmd pour ne pas mélanger les rendus.
Est-ce possible ?
(Je contourne le problème dans les fichiers des doublons de chunk de setup avec la fonction source_rmd trouvée ici : https://stackoverflow.com/questions/41962434/source-code-from-rmd-file-within-another-rmd, car je veux aussi pouvoir générer à part C1.Rmd par exemple.)
Le code ci-dessous marche si je suis dans le dossier A. Comment devrais-je le modifier si je mets synthese1.Rmd dans un dossier B1 ? Est-ce possible ?
Code : Tout sélectionner
source_rmd <- function(file, local = FALSE, ...){
options(knitr.duplicate.label = 'allow')
tempR <- tempfile(tmpdir = ".", fileext = ".R")
on.exit(unlink(tempR))
knitr::purl(file, output=tempR, quiet = TRUE)
envir <- globalenv()
source(tempR, local = envir, ...)
}
#son utilisation
source_rmd('./C1/C1.rmd')
source_rmd('./C2/C2.rmd')
source_rmd('./C3/C3.rmd')
Merci d'avance pour votre aide.