KnitR pour Rmarkdown automatisé à partir d'un fichier .bat

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Augustin Soulard
Messages : 30
Enregistré le : 08 Avr 2019, 07:18

KnitR pour Rmarkdown automatisé à partir d'un fichier .bat

Messagepar Augustin Soulard » 21 Sep 2021, 08:19

Bonjour j'ai un fichier .bat comme ceci :

Code : Tout sélectionner

copy "D:\BIOTOPE\RÉGION OUTRE MER - Asotheque\Asotheque.xlsx" "D:\OneDrive - BIOTOPE\Personnel\R\Rmarkdown\Html_wiki\Asotheque.xlsx"
C:\Users\asoulard\Documents\R\R-4.0.2\bin\R.exe CMD BATCH "D:\OneDrive - BIOTOPE\Personnel\R\Rmarkdown\Html_wiki\Asotheque.R"


J'utilise le copy car sinon j'ai des problèmes d'encodage dans R quand je passe par le .bat.

mon fichier R génère un fichier Rmarkdown avec sink() et test ensuite de knit mon fichier .Rmd

J'obtiens :

Code : Tout sélectionner

rmarkdown::render("Asotheque.Rmd",output_format = "html_document",output_file = "D:/OneDrive - BIOTOPE/Personnel/R/Rmarkdown/Html_wiki/Asotheque.html")
Erreur : pandoc version 1.12.3 or higher is required and was not found (see the help page ?rmarkdown::pandoc_available).
Exécution arrêtée


Pourtant quand je rentre manuellement dans mon fichier Rmarkdown, le knit fonctionne très bien. Et quand j'utilise mon fichier R sans passer par le .bat, cela fonctionne aussi.

Michaël Delorme
Messages : 67
Enregistré le : 04 Avr 2016, 10:21

Re: KnitR pour Rmarkdown automatisé à partir d'un fichier .bat

Messagepar Michaël Delorme » 21 Sep 2021, 10:20

Si tu le fais depuis RStudio et que ça marche je crois que c'est parce que RStudio utilise sa propre version de Pandoc.

Dans un batch je fais un :

Code : Tout sélectionner

SET PATH=%PATH%;chemin\vers\pandoc\

pour que Pandoc soit trouvé avant de lancer R.

NB : la bonne pratique dans ce cas est d'utiliser Rscript.exe plutôt que R.exe.

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: KnitR pour Rmarkdown automatisé à partir d'un fichier .bat

Messagepar Mickael Canouil » 21 Sep 2021, 10:32

Bonjour,

RStudio contient sa propre version de pandoc

Code : Tout sélectionner

R> Sys.getenv("RSTUDIO_PANDOC")
#> [1] "C:/Program Files/RStudio/bin/pandoc"     


Il est aussi possible d'installer pandoc en tant qu'administrateur pour que celui-ci soit ajouté au "PATH" automatiquement et donc en permettre l'accès partout.
Sinon, il faut le faire à la main, dans les paramètres de votre session windows d'une façon pérenne, ou dans du code msdos/powershell comme suggérer par Michaël.

Code : Tout sélectionner

PS> pandoc --version
#> pandoc.exe 2.14.2
#> Compiled with pandoc-types 1.22, texmath 0.12.3.1, skylighting 0.11,       
#> citeproc 0.5, ipynb 0.1.0.1
#> User data directory: D:\Profils\mcanouil\AppData\Roaming\pandoc
#> Copyright (C) 2006-2021 John MacFarlane. Web:  https://pandoc.org
#> This is free software; see the source for copying conditions. There is no  
#> warranty, not even for merchantability or fitness for a particular purpose.  


Pourquoi ne pas tout faire en R en un seul et unique appel à R CMD BATCH ou Rscript avec en paramètre vos fichiers ?

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité