Me pregunto si hay un truco para poner la fecha actual en la parte delantera de YAML de un .rmd
documento para ser procesado por knitr
el rmarkdown
paquete. Solía tener la siguiente línea en la parte superior de mis páginas wiki,
_baptiste, `r format(Sys.time(), "%d %B, %Y")`_
y se convertiría a baptiste, 03 de mayo de 2014 en la salida html. Ahora, me gustaría aprovechar el envoltorio avanzado de pandoc provisto por rmarkdown
, pero tener código r en el encabezado YAML no parece funcionar:
---
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
¿Alguna solución?
r
yaml
knitr
r-markdown
bautista
fuente
fuente
!expr
, por ejemplodate: !expr Sys.time()
, pero ahora esto tampoco funciona.Respuestas:
Esto es un poco complicado, pero solo necesita hacer que el
date
campo sea válido en YAML citando la expresión R en línea, por ejemploLuego, el error de análisis desaparecerá y la fecha se generará en la salida de reducción para que Pandoc pueda usar el valor
Sys.time()
.fuente
includes: after_body: [ ... ]
como YAML válida solo serían cadenas de nombre de archivo ... ¿Entonces no hay posibilidad deincludes: "`r list.files(...)`"
?.md
archivo resultante si tengokeep_md: true
en el encabezado YAML. ¿Alguna solución para esto?date: "`r format(Sys.time(), '%B %d, %Y')`"
.r format(Sys.time(), '%d\\\\. %B %Y')
Solo siguiendo a @Yihui. Curiosamente, he encontrado que:
funciona mejor que:
Para este último, RStudio elige cambiar las comillas externas
'
cada vez que cambia entre salida HTML y PDF y, por lo tanto, rompe el código.fuente
O simplemente comillas simples comillas dobles y viceversa, esto funciona bien.
fuente
Una solución alternativa es usar el
brew
paquete y escribir su contenido de YAML comobrew
plantilla.Ahora puede usar un
brew_n_render
función que preprocesará el documento usandobrew
y luego se ejecutarármarkdown
.Para que esto funcione con el
KnitHTML
botón en RStudio, puede escribir un formato de salida personalizado que se usará automáticamentebrew
como preprocesador. El usobrew
de preprocesamiento garantiza que losknitr
fragmentos de código de su documento no se toquen durante la etapa de preprocesamiento. Idealmente, elrmarkdown
paquete debería exponer los metadatos en su API y permitir a los usuarios ejecutarlo a través de una función personalizada.fuente
o, tal vez algo como lo siguiente, vea R Markdown Informes parametrizados
fuente
Por el mismo problema para mí. Lo resuelvo usando este código.
Actualización También puede usar otro formato.
Mejor.
fuente
Hoy fui mordido por esto. yo tenía
y obtuve más o menos el mismo error que el OP, pero solo al tejer a la palabra. Tejer en pdf estaba bien antes de intentar tejer en Word. Después tampoco funcionó.
La posición 31 es el primer signo de%
Reemplazando esto con
según lo aconsejado por MLaVoie, funcionó bien.
No tengo idea de por qué sucedió esto, y no tengo tiempo para cavar, informes para terminar.
fuente