RMardkown的代码在渲染时可以得到更加精细的控制,诸如代码是否运行、是否显示、如何显示、文本是否输出、如何输出、图片是否显示、如何显示等等。
详细的资料可以参考Knitr的Chunk options:https://yihui.org/knitr/options/。这里主要根据个人经验展示比较常见的格式控制。
I 代码
eval
是否运行代码块,有些代码块是不运行的,仅仅是为了展示使用。
RMarkdown的代码选项是接受R变量的,所以可以根据特定条件去控制一个代码块是否执行。
下面的RMarkdown代表根据isShow的结果是否大于0来决定是否执行第二个代码块。
```{r,include = FASLE}
isShow <- rnorm(1) > 0
```
```{r, eval = isShow}
{eval some code}
```
echo
是否在结果中展示代码块,如下所示代码表示不在结果文件(如html文档)中展示代码,但是会展示代码的结果:文本或图片等等。
```{r, echo = FALSE}{eval some code}```
tidy
是否在显示代码的时候做格式化处理,如果为TRUE,那么会使用formatR格式化R代码:调整缩进、换行等等。
II 文本
result
比较重要的一个参数,用于控制文本输出是否显示以及如何显示,有四个可选项:markup、asis、hold、hide。
markup代表是否对输出作一定的修饰,是默认选项,比如对输出的向量加上```的代码块的符号。
asis是非常有用的选项,可以使用代码模拟Markdown语法,比如如下的代码可以生成三级标题,它等同于在RMarkdown中书写### 测试三级标记可以通过代码产生 `。(###的正确渲染需要前后都是空行,因此还使用cat打印了两个空行)
```{r, result = "asis"}cat(" \n")cat("### 测试三级标记可以通过代码产生 \n")
cat{" \n"}```
hold会将所有文本收集起来,放置到文件最后输出。
hide隐藏文本输出。
include
如果为FALSE,会隐藏本代码块和代码块输出,但是会执行代码内容,可用于做初始化,比如在RMarkdown的开始位置:
```{r setup, include = FALSE}
# 导入工具包
{import some libraries}
# 设置默认参数
knitr::opts_chunk$set(