来自 R 代码块的动态 RMarkdown 标题

5
请看以下.Rmd文件:
---
author: "Test"
date: "September 27, 2018"
output: html_document
---

```{r setup, include=FALSE}
days <- 60
title <- paste0(days, " Days")
```

上述代码中title输出的内容是"60 Days",不要加引号,我希望这个标题能够被输出到HTML文件中(如果是硬编码的话,原本应该在title:下面)。
这种情况是否可能实现?
1个回答

12

您可以在Rmarkdown文档中的任何位置(包括标题)插入任意R代码,只需用`反引号将代码块括起来,并在代码前面放置r即可:

因此,这样做(请注意代码行之间的;):

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

编织成这样:

enter image description here


正如@camille所指出的那样,您还可以通过用与初始标头相同的---括起来来在文件后面包含yaml块。 这使您可以使用稍后在代码中定义的变量:

您还可以内联包含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)`'
---

显示为:

在此输入图片描述


4
我想补充一下,您可以在文件后面插入一个yaml块。当我需要标题的一部分名称来自稍后评估的参数时,我经常这样做。将 title: params$whatever--- 包围起来,就像任何其他yaml前置内容一样。 - camille

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接