我在RStudio中使用R Markdown创建一个混合Markdown和R输出的报告。我知道如何在Markdown中使用内联R表达式,但我想知道如何进行反转,即在R代码中使用Markdown。我想循环一系列的计算并获得每个计算的Markdown标题。我希望标题用于格式化(例如,粗体标题等),并且还能够在生成的PDF中指定(子)部分(这是RMarkdown处理#和##等的方式的一个很好的特征)。
我知道我可以做到以下几点:
---
title: "test"
output: pdf_document
---
#Section 1
```{r, echo=FALSE}
print(1+1)
```
#Section 2
```{r, echo=FALSE}
print(2+2)
```
#Section 3
```{r, echo=FALSE}
print(3+3)
```
这给出了(粗略地)这样的东西:
## [1] 2
## [1] 4
## [1] 6
是否有可能使用以下内容来实现相同的输出:
---
title: "test2"
output: pdf_document
---
```{r, echo=FALSE}
for (i in 1:3)
{
print(paste("#Section",i))
print(i+i)
}
```
答案 0 :(得分:3)
正如@scoa指出的那样,你必须设置块选项results='asis'
。您还应该在标题之前和之后放置两个\n
。
---
title: "test"
output: pdf_document
---
```{r, echo=FALSE, results='asis'}
for (i in 1:3) {
cat(paste0("\n\n# Section", i, "\n\n"))
print(i+i)
cat("\n\n\\newpage")
}
```
答案 1 :(得分:0)
作为一个更一般的答案,查看从{R>变量解析markdown代码(和输出)的markdownreports包可能很有用。