我有一个R markdown文件,我想从脚本本身输出rmarkdown。例如,我在Rmd文件中有以下简单代码。
---
title: "test"
author: "johndoe"
date: "September 5, 2015"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r cars}
paste("## This is a Heading in Code")
summary(cars)
```
我想"这是代码中的标题"在rmarkdown中呈现。 R脚本中有一个解决方案,可根据http://rmarkdown.rstudio.com/r_notebook_format.html生成降价。但我试图找出如何在Rmarkdown文件中执行此操作。任何帮助赞赏。感谢。
答案 0 :(得分:13)
为什么要手动构建标头标记(以markdown或HTML格式)?在pander
中尝试内联R表达式或一些辅助函数(以编程方式生成markdown):
---
title: "test"
author: "johndoe"
date: "September 5, 2015"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## `r 'This is a Heading in Code'`
```{r title, results='asis'}
library(pander)
pandoc.header("This is a Heading in Code", level = 2)
```
```{r cars, results='asis'}
summary(cars)
```
答案 1 :(得分:0)
在 cat("## Heading")
代码夹头中使用 results='asis'
后,我为此搜索了一段时间的好答案。我看到很多人对代码块中的 results='asis'
设置不满意,因为它将代码块的所有结果设置为不包含在代码标记块中。我们有很多情况想要输出标题以及应该包含在标记中的结果(例如呈现为 html 表的 kable 表)。
这是我找到的解决方案,只需使用 knitr::asis_output
为文本对象指定“asis”属性,并将代码块保留在默认的 'markup'
设置中。
---
title: "test"
author: "johndoe"
date: "September 5, 2015"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r cars}
knitr::asis_output("## This is a Heading in Code")
summary(cars)
knitr::kable(summary(cars))
```
遗憾的是,目前 knitr::asis_output
仅适用于顶级 R 表达式,在其他表达式中调用时不起作用,例如 for 循环。