我正在使用R Notebook编写一个相对较长的报告,该报告使用R markdown语言,该语言将文本和代码组合在同一文档中并生成html输出。
我希望能够排除在最终HTML中显示的一些分析(文本和R代码)。如果我想创建两个版本的报告 - 完整/详细版本,以及带有主图和结论的较短版本,这非常有用。
显然,我可以为每种类型的报告创建单独的Rmd文件(或者注释掉需要为较短版本排除的报告部分),但我想知道是否有更优雅的方法来执行此操作。
这样的事情:
if (Version == "full_text"){
Full analysis goes here
```{r}
R code goes here (could be multiple chunks)
```
}
else {
The shorter version goes here
```{r}
R code goes here
```
}
答案 0 :(得分:1)
将报告的“详细”部分放在knitr child document中,您可以选择从主文档中调用它。
然后可以通过调用子文档来打开详细内容,并可以通过将变量child_docs
设置为NULL
来关闭它。例如,下面是主文档和子文档。
将此文档保存在knitr-child.Rmd
---
title: "knitr child"
output: html_document
---
# Details from the child document
Hi, there. I'm a child with a plot and as many details as necessary.
```{r test-child}
plot(cars)
```
---
title: "Report"
output: html_document
---
# Summary
```{r setup}
child_docs <- c('knitr-child.Rmd')
# child_docs <- NULL
```
```{r test-main, child = child_docs}
```
# Conclusion
---
title: "Report"
output: html_document
---
# Summary
```{r setup}
# child_docs <- c('knitr-child.Rmd')
child_docs <- NULL
```
```{r test-main, child = child_docs}
```
# Conclusion