R内联降价

问题描述 投票:6回答:2

我在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)
```

这给出了(粗略地)这样的东西:

Section 1

## [1] 2

Section 2

## [1] 4

Section 3

## [1] 6

是否有可能使用以下内容来实现相同的输出:

---
title: "test2"
output: pdf_document
---

```{r, echo=FALSE}
for (i in 1:3)
{
  print(paste("#Section",i))
  print(i+i)
}
```
r pdf markdown rstudio r-markdown
2个回答
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")
}
```

0
投票

作为一个更一般的答案,查看从R变量解析markdown代码(和输出)的markdownreports包可能很有用。

© www.soinside.com 2019 - 2024. All rights reserved.