4.2 文書タイトルを動的に設定する

インライン R コード (3.1節)は, Rmd 文書内のどこでも, YAML メタデータの部分であっても, 使うことができます. つまり次の例のように, インライン R コードによって文書のタイトルなどの YAML メタデータを動的に生成できるということです.

---
title: "自動車 `r nrow(mtcars)` 台の分析"
---

文書タイトルが後の文書内で作成される R の変数に依存する場合, 以下の例のように変数の後にくる YAML セクションに title フィールドを書き加えることができます.

---
author: "利口なアナリスト"
output: pdf_document
---

我々の市場シェアを頑張って計算してみました.

```{r}
share <- runif(1)
```

---
title: "我々の市場シェアは今や `r round(100 * share, 2)`% です!"
---

これはとても `r if(share > 0.8) "喜ばしい" else "悲しい"` ことです.

上記の例では, 変数 share を生成してから文書のタイトルを追加しています. このような場合であってもうまくいくのは, Pandoc は文書内に YAML セクションをいくつ書いても読み込み, そして全てをマージすることができるためです.

タイトルだけでなくどの YAML フィールドも, パラメータ化されたレポートから動的に生成することができます (17.4 節参照). 例えばこのように.

---
title: "`r params$doc_title`"
author: "利口なアナリスト"
params:
  doc_title: "デフォルトのタイトル"
---

タイトルを動的なパラメータにしておくと, タイトルだけ異なるレポートを簡単に一括で生成できます.

この節ではタイトルを例にしましたが, このアイディアは YAML セクションのどのメタデータのフィールドにも適用可能です.