我正在执行一些计算密集型操作,我想从中生成报告。我正在尝试使用 bookdown 或直接降价。本质上我想要一个 html_document 报告和一个 word_document 报告。
我的 .Rmd 文件如下所示:
---
title: "My analysis"
author: "me"
date: '2019-12-17'
output:
bookdown::word_document2:
highlight: tango
df_print: kable
reference_docx: Word_template.docx
toc: yes
toc_depth: 2
fig_caption: yes
bookdown::html_document2:
theme: yeti
highlight: tango
df_print: paged
toc: yes
toc_depth: 2
fig_caption: yes
keep_md: yes
---
***
```{r child = 'index.Rmd', cache=TRUE}
```
```{r child = '01-Read_in_raw_data.Rmd', cache=TRUE}
```
```{r child = '02-Add_analysis.Rmd', cache=TRUE}
```
发生的情况是 html 和 word 文档分别缓存,这 a) 很耗时,因为它们运行了两次;b) 由于某些导出的文件在缓存时产生问题而令人烦恼(它们是在第一次 knit 操作期间生成的,但已经存在)对于第二个和后续的并生成错误)。
我尝试过只生成 .md 文件,但它并没有改变问题(a),而且我只是从 pandoc 的 .md 输入中得到非常丑陋的报告。
有谁有更优雅的方法来做到这一点?
默认情况下,缓存数据库的路径(由knitr) 取决于 R Markdown 输出格式。这就是为什么必须针对不同的输出格式(例如 HTML 和 Word)重新生成缓存的原因。要对所有输出格式使用相同的缓存数据库副本,您可以手动指定不依赖于输出格式的路径,例如,
```{r, setup, include=FALSE}
knitr::opts_chunk$set(cache.path = 'a/fixed/directory/')
```
但是,请注意,每种输出格式使用自己的缓存路径肯定是有原因的:R 代码块的输出可能取决于输出格式。例如,可以使用 Markdown 语法写出一个图![](...)
用于Word输出,但可能会变成<img src="..." />
用于 HTML 输出。如果您确定您的代码块没有任何副作用(例如,生成绘图和表格),则可以安全地为缓存数据库使用固定路径。通常我不建议您打开cache = TRUE
对于整个文档(因为缓存很难 https://yihui.org/en/2018/06/cache-invalidation/),但只缓存特定的耗时的代码块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)