Gostaria de saber se existe um truque para colocar a data atual no front-matéria do YAML de um .rmd
documento a ser processado knitr
e ormarkdown
pacote. Eu costumava ter a seguinte linha no topo das minhas páginas wiki,
_baptiste, `r format(Sys.time(), "%d %B, %Y")`_
e seria convertido para baptiste, em 3 de maio de 2014 na saída html. Agora, eu gostaria de tirar proveito do wrapper pandoc avançado fornecido por rmarkdown
, mas ter o código r no cabeçalho YAML parece não 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
Alguma solução alternativa?
r
yaml
knitr
r-markdown
baptiste
fonte
fonte
!expr
, por exemplodate: !expr Sys.time()
, mas agora isso também não funciona.Respostas:
Isso é um pouco complicado, mas você só precisa validar o
date
campo no YAML citando a expressão R in-line, por exemploEntão o erro de análise desaparecerá e a data será gerada na saída da remarcação para que o Pandoc possa usar o valor de
Sys.time()
.fonte
includes: after_body: [ ... ]
pois o YAML válido seria apenas uma string de nome de arquivo ... Portanto, não há possibilidade deincludes: "`r list.files(...)`"
?.md
arquivo resultante se eu tiverkeep_md: true
no cabeçalho YAML. Alguma solução para isso?date: "`r format(Sys.time(), '%B %d, %Y')`"
.r format(Sys.time(), '%d\\\\. %B %Y')
Apenas acompanhando @Yihui. Estranhamente, eu descobri que:
funciona melhor que:
Para este último, o RStudio decide alterar as aspas externas para
'
sempre que alternar entre a saída HTML e PDF e, assim, quebrar o código.fonte
Ou apenas aspas simples, aspas duplas e vice-versa, isso funciona bem.
fonte
Uma solução alternativa é usar o
brew
pacote e escrever o assunto da frente do YAML como umbrew
modelo.Agora você pode usar uma
brew_n_render
função que pré-processa o documento usandobrew
e depois é executadarmarkdown
.Para fazer isso funcionar com o
KnitHTML
botão no RStudio, você pode escrever um formato de saída personalizado que será usado automaticamentebrew
como pré-processador. Usarbrew
para pré-processar garante que osknitr
blocos de código do seu documento sejam intocados durante o estágio de pré-processamento. Idealmente, ormarkdown
pacote deve expor os metadados em sua API e permitir que os usuários os executem por meio de uma função personalizada.fonte
ou, talvez algo como o seguinte, consulte Relatórios parametrizados R Markdown
fonte
Para o mesmo problema para mim. Eu resolvo isso usando este código.
Atualizar Você também pode usar outro formato.
Melhor.
fonte
Fui mordido por isso hoje. eu tinha
e obteve mais ou menos o mesmo erro do OP, mas apenas ao tricotar com palavras. Tricotar em pdf estava bom antes de eu tentar tricotar no Word. Depois também não funcionou.
A posição 31 é o primeiro sinal de%
Substituindo isso por
como recomendado pelo MLaVoie, funcionou bem.
Não tenho idéia do por que isso aconteceu e não tenho tempo para cavar - os relatórios devem terminar.
fonte