B.1 knitr
knitr 包是基于“文学化编程 (Literate Programming)”(Knuth 1984)的思想设计的,它允许你在源文档中将程序代码与文本混合在一起。当 knitr 编译文档时,程序代码(以代码块为单位)会被提取并执行,程序输出将与原始文本一起展示在输出文档中。我们在第 2.3 节中介绍了基本的语法。
R Markdown 不是 knitr 支持的唯一源格式。knitr 的基本思想可应用于其他计算和创作语言。例如,knitr还支持 R 和 LaTeX 的组合(*.rnw
文档),以及 R + HTML (*.RtML
) 等。你也可以在 knitr 中 使用其他计算语言,如 C++、Python、SQL 等。下面是一个简单的例子,你可以在 http://rmarkdown.rstudio.com/authoring_knitr_engines.html 中了解更多信息。
Python 用户可能熟悉 IPython 或 Jupyter Notebooks (https://jupyter.org)。事实上,R Markdown 也可以作为笔记本使用,并有一些额外的优势;有关这方面详细信息,请参阅这篇博客文章:https://blog.rstudio.org/2016/10/05/r-notebooks/。
如果要在文档中显示文本形式的代码块,可以在块头部之前添加一个内联表达式,该表达式生成一个空字符串 (`r ''`
),并将代码块用在四个反引号包裹起来,14例如:
当文档被编译后,内联表达式将会消失,你会看到:
编译文档时通常不需要直接调用 knitr 函数,因为 rmarkdown 会调用 knitr。如果你希望编译源文档而不进一步将其转换为其他格式,可以使用 knitr::knit()
函数。
参考文献
如果要在列表等其他环境中显示文字形式的代码块,请遵循缩进规则:https://pandoc.org/MANUAL.html#block-content-in-list-items↩︎