4.2 文書タイトルを動的に設定する
インライン R コード (3.1節)は, Rmd 文書内のどこでも, YAML メタデータの部分であっても, 使うことができます. つまり次の例のように, インライン R コードによって文書のタイトルなどの YAML メタデータを動的に生成できるということです.
---
title: "自動車 `r nrow(mtcars)` 台の分析"
---
文書タイトルが後の文書内で作成される R の変数に依存する場合, 以下の例のように変数の後にくる YAML セクションに title
フィールドを書き加えることができます.
---
author: "利口なアナリスト"
output: pdf_document
---
我々の市場シェアを頑張って計算してみました.
```{r}
share <- runif(1)
```
---`r round(100 * share, 2)`% です!"
title: "我々の市場シェアは今や
---
`r if(share > 0.8) "喜ばしい" else "悲しい"` ことです. これはとても
上記の例では, 変数 share
を生成してから文書のタイトルを追加しています. このような場合であってもうまくいくのは, Pandoc は文書内に YAML セクションをいくつ書いても読み込み, そして全てをマージすることができるためです.
タイトルだけでなくどの YAML フィールドも, パラメータ化されたレポートから動的に生成することができます (17.4 節参照). 例えばこのように.
---
title: "`r params$doc_title`"
author: "利口なアナリスト"
params:
doc_title: "デフォルトのタイトル"
---
タイトルを動的なパラメータにしておくと, タイトルだけ異なるレポートを簡単に一括で生成できます.
この節ではタイトルを例にしましたが, このアイディアは YAML セクションのどのメタデータのフィールドにも適用可能です.