在 knitr 的分块文件中保留降价

Preserve markdown in chunked file for knitr

我有一个名为 runDataAnalysis.R 的 R 脚本,我在其中调用了一个长分析文件 actualAnalysis.R

我想用 knitr 生成报告(我没有使用 RStudio)。

所以我遵循了一些 good advice 并做了以下事情:

我的长分析文件顶部有 ## @knitr runMostAnalyses

我的 runDataAnalysis.R 文件中也有这些行:

---
output: html_document: 
        toc: true
---

```{r echo=FALSE}
read_chunk('pathtofile/actualAnalysis.R')
```

```{r first}
<<runMostAnalyses>>
```

最后,我 运行 它并通过调用 rmarkdown::render('runDataAnalysis.R') 获取报告。这在大多数情况下都有效,但它不会保留源文件中指示的降价(至少与通常用于 rmarkdown 的格式不同)。例如,我有不同的标题级别 #' ##' ###' ###。但这只是在报告文件中逐字复制,而不是解释为标题(并包含在内容的 table 中)。我在 chunk options 中找不到任何相关选项。

评估块时是语法不同还是我做错了什么?

如果将 Rmd 导入 Rmd 文件,您可以使用描述的解决方案之一 here:使用块参数 child

```{r, child = 'pathtofile/actualAnalysis.R'}
```

或使用函数knit_child(returns将转换后的文档作为字符串)连同块参数results设置为'asis'

```{r echo=FALSE, results='asis'}
   cat(knit_child(text = readLines('pathtofile/actualAnalysis.Rmd', quiet = TRUE)) 
```

如果导入的文件是要用 spin 处理的格式化 R 脚本,将 knit_child 替换为 spin_child 后同样应该可以工作。

如果父文档本身也是这样一个格式化的 R 脚本,要用旋转处理(不是 Rmd,如您的示例),您可以使用双花括号导入子文档(为旋转格式化),如所述在 spin_child 文档中:

{{ spin_child('pathtofile/actualAnalysis.R') }}