4.2 Set the document title dynamically

4.2 Set the document title dynamically

You can use inline R code (see Section 3.1) anywhere in an Rmd document, including the YAML metadata section. This means some YAML metadata can be dynamically generated with inline R code, such as the document title. For example:

---
title: "An analysis of `r nrow(mtcars)` cars"
---

If your title depends on an R variable created later in the document, you may add the title field in a later YAML section, e.g., the following:

---
author: "Smart Analyst"
output: pdf_document
---

I just tried really hard to calculate our market share:

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

title: "Our market share is r round(100 * share, 2)% now!"

I feel r if(share > 0.8) "happy" else "sad" about it.


In the example above, we added the document title after we created the variable `share`. The title works in this case because Pandoc can read any number of YAML sections in a document (and merge them).

You can also generate titles or any YAML fields dynamically from parameters in parameterized reports (see Section [17.4](/read/rmarkdown-cookbook-1.0-en/d165#parameterized-reports)), e.g.,


title: "r params$doc_title" author: "Smart Analyst" params: doc_title: "The Default Title"


```

With the title being a dynamic parameter, you can easily generate a batch of reports with different titles.

We used the title as the example in this section, but the idea can be applied to any metadata fields in the YAML section.