Me pregunto si hay un truco para poner la fecha actual en la parte delantera de YAML de un .rmddocumento para ser procesado por knitrel rmarkdownpaquete. 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
datecampo 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(...)`"?.mdarchivo resultante si tengokeep_md: trueen 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
brewpaquete y escribir su contenido de YAML comobrewplantilla.Ahora puede usar un
brew_n_renderfunción que preprocesará el documento usandobrewy luego se ejecutarármarkdown.Para que esto funcione con el
KnitHTMLbotón en RStudio, puede escribir un formato de salida personalizado que se usará automáticamentebrewcomo preprocesador. El usobrewde preprocesamiento garantiza que losknitrfragmentos de código de su documento no se toquen durante la etapa de preprocesamiento. Idealmente, elrmarkdownpaquete 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
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