使用rmarkdown作为晕影引擎

Ste*_*ieP 6 r rstudio r-markdown

我在R Markdown写了一些小插曲,打算用RStudio的rmarkdown 软件包构建它们.我知道这rmarkdown::render是我们用来将.rmd转换为.html(或其他任何格式)的函数,但是,当我放置时

<!--
%\VignetteEnginer{rmarkdown::render}
%\VignetteIndexEntry{some test title}
-->
Run Code Online (Sandbox Code Playgroud)

在我.rmd的序言(和knitrrmarkdown在描述我推荐的领域,以及rmarkdown在VignetteBuilder场)我的小插曲不会编译.

有没有人设法rmarkdown成为一个小插图建设者?

Ste*_*ieP 10

从@ Ben的回答(以及下面的评论)中,knitr 已经注册了一个访问的插图引擎rmarkdown(如果已安装)和

<!--
%\VignetteEngine{knitr::rmarkdown}
%\VignetteIndexEntry{Supplementary materials}
-->
Run Code Online (Sandbox Code Playgroud)

是我们如何注册它的例子.然而,为了充分利用rmarkdown(即转化.Rmd的到.html的,并在规定的任何样式保存.Rmd),你必须把上面的代码段BELOW了'rmarkdown序言’.举个例子,你.Rmd应该看起来像

---
Title: "Supplementary Materials"
output:
  html_document:
    theme: flatly
---
<!--
%\VignetteEngine{knitr::rmarkdown}
%\VignetteIndexEntry{Supplementary Materials}
-->
Run Code Online (Sandbox Code Playgroud)

当然,您还需要确保已正确创建描述文件以包含rmarkdownknitr.最简单的方法是使用

Suggests: knitr, rmarkdown
VignetteBuilder: knitr
Run Code Online (Sandbox Code Playgroud)

  • 我对此感到非常困惑,因为`knitr :: rmarkdown`确实不存在。我想出了相同的解决方案在调试模式下逐行进行,但不了解 (2认同)

Ben*_*Ben 2

为什么你想使用rmarkdown而不是knitr?乍一看,你的问题看起来有点混淆rmarkdownknitr。澄清:

rmarkdown是一种“基于 knit 和 pandoc”的“创作格式”。当我们运行时,rmarkdown::render我们正在调用knitr和/或 pandoc。

knitr是将rmarkdown转换为html/PDF/docx的引擎。这就是执行代码R以获取输出和绘图等的内容。

软件包knitr作者已经提到“由于 rmarkdown 软件包尚未在 CRAN 上,因此您目前无法使用 vignette 引擎 knitr::rmarkdown”。如果您等不及,您可以注册自己的引擎,但这看起来相当复杂。

我想你想要的是:

这位于您的 Rmd 文档的顶部:

<!--
%\VignetteEngine{knitr::rmarkdown}
%\VignetteIndexEntry{Supplementary materials}
-->
Run Code Online (Sandbox Code Playgroud)

这在你的DESCRIPTION文件中:

VignetteBuilder: knitr
Suggests:
    knitr
Run Code Online (Sandbox Code Playgroud)

要获得完整的示例,请查看tidyr,这是描述,这是rmarkdown 小插图(向Andrie指出这一点致敬)。

如果您想要从中获得某些rmarkdown无法获得的特定内容knitr(自定义样式等),那么您应该将其放在一个新问题中。