我开始用文本嵌入R代码,我正在使用knitr
来生成pdf和html文档。我之前已经通过编辑 Rmarkdown 文件做到了这一点,但在我看来,直接从 R 脚本(而不是从 Rmarkdown 文件(编译报告有一个优点:在.R
文档中运行 R 代码本身并对其进行测试要容易得多,之后能够添加文本并以美观和美观的方式打印它。
但是,我注意到直接使用 Rmd 或 R 时定义代码块的方式有所不同。
在 Rmarkdown 中,要分隔代码块,我需要设置它的开始位置(用```{r}
表示(和结束时间(用```
表示(。这两个元素之间的所有内容都对应于 R 代码和注释,它们将作为单个块中的代码读取。
但是,当直接从 R 代码编译报告时,我可以分隔块何时开始(通过键入#+
或#-
或类似#---
,根据用于呈现文档的函数旋转(,但我没有设置块的结束位置(而且我还没有找到有关这方面的信息(。我假设,在这种表示法中,如果另一个块设置为开始(例如通过#+
(或将某些内容设置为编译为文本(通过行首的#'
(,则代码块会自动结束。否则,我会假设脚本中的所有内容都被视为相同的代码块。
我对这些假设是正确的吗?
有没有办法显式声明在从 R 脚本编译报表时代码块必须结束?
提前感谢,
贝尔纳多
我想我理解你的问题。我花了很长时间才弄清楚事情,今晚我工作了一点。
"#+"分隔符开始一个部分,而不是只能是代码。 空行是可以的,R 样式的注释是可以的,但是任何 #' 样式的 markdown 编码都会终止块。 任何默认区块选项都将在嵌入式 rmarkdown 编码后恢复为默认值。
如果仍然对此感兴趣,我有一个示例编码。