从最终的html输出

时间:2017-03-22 18:57:22

标签: r r-markdown rnotebook

我正在使用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 
                ```
    }

1 个答案:

答案 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

full version

主要文件较短版本

---
title: "Report"
output: html_document
---

# Summary 

```{r setup}
# child_docs <- c('knitr-child.Rmd')
child_docs <- NULL
```

```{r test-main, child = child_docs}
```

# Conclusion

shorter version