105 votes

Comment sourcer un fichier R Markdown comme `source('myfile.r')` ?

J'ai souvent un fichier principal R Markdown ou un fichier knitr LaTeX dans lequel je source un autre fichier R (par exemple, pour le traitement des données). Cependant, je pensais que dans certains cas, il serait bénéfique que ces fichiers sources soient leurs propres documents reproductibles (par exemple, un fichier R Markdown qui non seulement inclut des commandes pour le traitement des données mais produit également un document reproductible qui explique les décisions de traitement des données).

Ainsi, j'aimerais avoir une commande telle que source('myfile.rmd') dans mon fichier Markdown R principal. Cela permettrait d'extraire et de sourcer tout le code R à l'intérieur des morceaux de code R de myfile.rmd . Bien entendu, cela donne lieu à une erreur.

La commande suivante fonctionne :

```{r message=FALSE, results='hide'}
knit('myfile.rmd', tangle=TRUE)
source('myfile.R')
```

donde results='hide' pourrait être omis si la sortie était désirée. Par exemple, knitr produit le code R de myfile.rmd en myfile.R .

Cependant, il ne semble pas parfait :

  • cela entraîne la création d'un fichier supplémentaire
  • il doit apparaître dans son propre bloc de code si le contrôle de l'affichage est nécessaire.
  • Ce n'est pas aussi élégant que simple source(...) .

D'où ma question : Existe-t-il une manière plus élégante de sourcer le code R d'un fichier R Markdown ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X