为knitr保留chunked文件中的markdown

时间:2016-11-17 18:01:19

标签: r markdown 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的格式相同)。例如,我的标题级别与#' ##' ###' ###不同。但这只是在报告文件中逐字复制而不是解释为标题(并包含在目录中)。我在chunk options找不到任何相关选项。

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

1 个答案:

答案 0 :(得分:2)

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

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

或使用函数knit_child(将转换后的文档作为字符串返回)以及设置为results的块参数'asis'

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

如果导入的文件格式化为要使用spin处理的R脚本,则在使用spin_child替换knit_child后,该文件应该可以正常工作。

如果父文档本身也是使用spin处理的格式化R脚本(不是Rmd,如示例所示),则可以使用双花括号导入子文档(格式化为旋转),如spin_child文档:

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