【发布时间】:2019-04-13 14:59:14
【问题描述】:
我试图了解rmarkdown、sweave 和knitr 之间的关系。查看代码和示例,我遇到了两种类型的代码头,我不明白它们属于什么语言/包。
标题是
```{}
```
和
<<>>=
@
- 它们之间有什么区别?
- 它们与
rmarkdown、sweave和knitr有什么关系? - 如果我在
.rnw上工作,我使用的是哪一个?
【问题讨论】:
-
sweave基于 LaTeX 基本格式,rmarkdown基于降价。两者都允许用于 R 代码、输出和绘图的代码块。knitrused to supportsweave但显然不再这样做了,因此它将rmarkdown呈现为多种输出格式之一(包括 LaTeX、pdf、html、markdown、docx、epub)。 -
@r2evans 很抱歉让您感到困惑,但 knitr 从第一天开始就支持 Sweave,并且仍然支持它。您提到的文档说完全兼容性已被删除,这仅意味着不再支持某些 Sweave 块选项。这种
.Rnw格式仍然得到很好的支持。 -
除非我弄错了,否则区别是:
```{}是rmarkdown,<<>>=是sweave。 -
Zweifler,我相信它更像是“普通 LaTeX”的标记,提供代码执行(简单地说),但我不是
sweave的专家。坦率地说,我从来没有真正使用过它……在我知道sweave之前,我已经在使用 R 和 LaTeX,然后直接跳到了rmarkdown。使用sweave肯定有优势,即能够控制 Markdown 不支持的 LaTeX 中的内容。 -
@r2evans 您上面的理解是绝对正确的,所以请随时发布答案。如果有任何需要进一步澄清的地方,我很乐意加入。谢谢!
标签: r r-markdown knitr sweave