Je me demande s'il y a une astuce pour mettre la date actuelle dans la première page YAML d'un .rmd
document à traiter knitr
et du rmarkdown
package. J'avais l'habitude d'avoir la ligne suivante en haut de mes pages wiki,
_baptiste, `r format(Sys.time(), "%d %B, %Y")`_
et il serait converti en baptiste, le 03 mai 2014 dans la sortie html. Maintenant, je voudrais profiter du wrapper pandoc avancé fourni par rmarkdown
, mais avoir le code r dans l'en-tête YAML ne semble pas fonctionner:
---
title: "Sample Document"
output:
html_document:
toc: true
theme: united
date: `r format(Sys.time(), "%d %B, %Y")`
author: baptiste
---
Error in yaml::yaml.load(front_matter) :
Scanner error: while scanning for the next token at line 6, column 7
found character that cannot start any token at line 6, column 7
Calls: <Anonymous> ... output_format_from_yaml_front_matter ->
parse_yaml_front_matter -> <Anonymous> -> .Call
Une solution?
r
yaml
knitr
r-markdown
baptiste
la source
la source
!expr
, par exempledate: !expr Sys.time()
, mais maintenant cela ne fonctionne pas non plus.Réponses:
C'est un peu délicat, mais il vous suffit de rendre le
date
champ valide en YAML en citant l'expression R en ligne, par exempleEnsuite, l'erreur d'analyse aura disparu et la date sera générée dans la sortie de démarque afin que Pandoc puisse utiliser la valeur de
Sys.time()
.la source
includes: after_body: [ ... ]
car YAML valide ne serait que des chaînes de nom de fichier ... Donc, aucune possibilité deincludes: "`r list.files(...)`"
?.md
fichier résultant si je l'aikeep_md: true
dans l'en-tête YAML. Une solution pour ça?date: "`r format(Sys.time(), '%B %d, %Y')`"
.r format(Sys.time(), '%d\\\\. %B %Y')
Je fais juste un suivi sur @Yihui. Curieusement, j'ai constaté que:
fonctionne mieux que:
Pour ce dernier, RStudio choisit de changer les guillemets externes en
'
basculant entre la sortie HTML et PDF et donc de casser le code.la source
Ou juste des guillemets simples et vice versa, cela fonctionne bien.
la source
Une solution de contournement consiste à utiliser le
brew
package et à écrire votre sujet YAML en tant quebrew
modèle.Vous pouvez maintenant utiliser une
brew_n_render
fonction qui pré-traiterait le document à l'aidebrew
puis l'exécuteraitrmarkdown
.Pour que cela fonctionne avec le
KnitHTML
bouton dans RStudio, vous pouvez écrire un format de sortie personnalisé qui sera automatiquement utilisébrew
comme préprocesseur. L'utilisationbrew
du prétraitement garantit que lesknitr
morceaux de code de votre document ne sont pas modifiés pendant l'étape de prétraitement. Idéalement, lermarkdown
package devrait exposer les métadonnées dans son API et permettre aux utilisateurs de l'exécuter via une fonction personnalisée.la source
ou, peut-être quelque chose comme ce qui suit, voir R Markdown Parameterized Reports
la source
Pour le même problème pour moi. Je le résous en utilisant ce code.
Mise à jour Vous pouvez également utiliser un autre format.
Meilleur.
la source
J'ai été mordu par cela aujourd'hui. j'ai eu
et a obtenu plus ou moins la même erreur que l'OP, mais seulement en tricotant au mot. Tricoter en pdf était bien avant d'essayer de tricoter en Word. Après ça n'a pas marché non plus.
La position 31 est le premier signe%
Remplacer cela par
comme conseillé par MLaVoie, a bien fonctionné.
Je n'ai aucune idée pourquoi cela s'est produit, et je n'ai pas le temps d'aller creuser - les rapports pour terminer.
la source