R代码块的动态RMarkdown标题

Cla*_*ist 3 r r-markdown

请考虑以下.Rmd文件:

---
author: "Test"
date: "September 27, 2018"
output: html_document
---

```{r setup, include=FALSE}
days <- 60
title <- paste0(days, " Days")
```
Run Code Online (Sandbox Code Playgroud)

title上面的输出,即"60 Days"没有引号是我想要输出到.html文件中的标题(title:如果它是硬编码的话,最初将在上面输出).

这可能吗?

div*_*san 7

您可以在Rmarkdown文档(包括标题)中的任意位置插入任意R代码,方法是使用`刻度线围绕块并放在r代码前面:

所以这(注意;代码行之间):

---
author: "Test"
date: "September 27, 2018"
output: html_document
title: '`r days <- 60; paste0(days, " Days")`'
---
Run Code Online (Sandbox Code Playgroud)

编织如下:

在此输入图像描述


正如@camille指出的那样,您也可以在文件中稍后包含yaml块,方法是将它们包含---在初始头中.这使您可以使用代码中稍后定义的变量:

您还可以在markdown中包含R块内联并使用R表达式来控制markdown的显示:

---
author: "Test"
date: "September 27, 2018"
output: html_document
---

```{r}
debug <- 2
num1 <- 3
```

`r if(debug > 3){"## Debug is > 3"}`
`r if(debug < 3){"## Debug is < 3"}`

The value of num1 is `r num1`

---
title: '`r paste0('Title: the value of debug is ', debug)`'
---
Run Code Online (Sandbox Code Playgroud)

渲染如下:

在此输入图像描述

  • 我想补充一点,你可以稍后在文件中插入一个yaml块.当我需要标题从稍后评估的参数中获取其部分名称时,我经常这样做.围绕着``title:params $ whatever` in` ---`就像任何其他yaml前面的事情一样 (3认同)