1. ホーム
  2. r

[解決済み】RmarkdownでYAMLの現在の日付を表示する

2022-03-29 13:14:41

質問

のYAMLフロントマターに現在の日付を入れるトリックがあるのだろうか? .rmd で処理されるドキュメントです。 knitrrmarkdown パッケージで提供されます。私は以前、wikiのページのトップに以下のような行を載せていました。

   _baptiste, `r format(Sys.time(), "%d %B, %Y")`_

に変換されてしまいます。 バティスト, 03 5月, 2014 をhtml出力で表示します。さて、私は、次のような先進的なpandocラッパーを利用したいと思います。 rmarkdown しかし、YAMLヘッダーにrのコードを持つことはうまくいかないようです。

---
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

何か回避策はありますか?

解決方法は?

これはちょっと難しいのですが、ただ単に date フィールドを YAML で有効にするには、インラインの R 式を引用します (例)。

date: "`r format(Sys.time(), '%d %B, %Y')`"

そうすると、パースエラーがなくなり、マークダウン出力に日付が生成されるので、Pandocはその値を Sys.time() .