以编程方式,我的bookdown项目进行如下:
我使用bookdown很好地集成了分析和叙述,能够高效地丢弃临时(相当大的)数据集/ggplot2对象(转换前后的数据等等)。
然而:目标观众大多/只对4. & 5.感兴趣,这将我引向以下结构:
4. 5.附录(1.、2.、3.)
除了预计算1.-5之外,还有其他方法吗?然后按照目标顺序重新访问--如果可能的话,我更希望避免在内存中积累所有的ggplot2对象。
发布于 2018-07-19 06:09:43
你可以这样做:
*.Rmd文件,比如123.Rmd和45.Rmd。45.md的开头,该代码块将123.Rmd连接到123.md```{r knit123, include = FALSE} knitr::knit("123.Rmd", output = "123.md") ```
这将在Markdown中生成步骤1-3的输出,并将由此创建的所有对象都提供给步骤4-5。
45.Rmd的末尾添加一个代码块,该代码块读取123.md打印其内容:```{r include123, results = "asis"} cat(readLines("123.md"), sep = "\n") ```
results = "asis"将阻止任何进一步的处理,因为它已经是有效的标记。
45.Rmd编织成您想要的任何目标格式。编辑(1)
TL;DR:不是在整个步骤4-5中将步骤1-3中的对象存储在内存中,而是先打印它们并将结果存储在磁盘上。
编辑(2):
既然您已经明确地提到了预订:如果有一个YAML选项在编织过程结束时包含一个Markdown文件(类似于include-after: 123.md),我不会感到惊讶;但是我不知道从头顶开始是否确定,我懒得自己去查找它。;-)
https://stackoverflow.com/questions/51387098
复制相似问题