我有一个名为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找不到任何相关选项。
语法不同还是我在评估块时做错了什么?
答案 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') }}