首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sweave诉Knitr诉Rmarkdown:代码块头

Sweave诉Knitr诉Rmarkdown:代码块头
EN

Stack Overflow用户
提问于 2018-11-10 04:07:41
回答 1查看 5.6K关注 0票数 14

我试图理解rmarkdownsweaveknitr之间的关系。看看代码和示例,我遇到了两种类型的代码头,我不明白它们属于哪种语言/包。

标头是

代码语言:javascript
复制
```{}
代码语言:javascript
复制

代码语言:javascript
复制
<<>>=
@
  1. 他们之间有什么区别?
  2. 它们与rmarkdownsweaveknitr有关吗?
  3. 如果我在.rnw上工作,我用的是哪一个?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-11 17:55:28

sweave和rmarkdown都提供了为R、python和其他编程语言运行任意代码的能力。每种方法的优缺点各不相同,但简单地比较一下:

R标记:

  • 典型文件扩展名:.rmd (case-insens),可能是.rmarkdown
  • 支持R,python和其他几种语言
  • 输出到HTML、docx、LaTeX (因此也是其他几种输出格式 )和其他几种输出格式
  • 使用三重回勾号来划分块。 普通短信。{r chunkname, chunkoptions, ...} a <- 1 {python pychunk, chunkoptions, ...} def myfun(v: list) -> list: """ Something important in this docstring. """ return [a+1 for a in v]更有规律的文本。
  • 因为它是基于标记的,所以交叉引用、表控制等都有一些限制;其中有很多包和已知的缓解技术(太多而不能在这里列出)。但是,您可以在标记中使用直接的LaTeX格式,所以输出到PDF也可以享受这种控制(尽管LaTeX代码没有被翻译成其他输出格式)。

瑞文:

  • 典型的文件扩展名包括.rnw (case-insens),我见过.noweb (不完全确定.)
  • 支持R,或者其他语言,如果您可以通过R获得它们(例如通过reticulate)
  • 输出到LaTeX,因此是PDF格式
  • 使用<<>>=@来划分块: 普通短信。<>= a <- 1@更多的常规文本。
  • 因为它是直接基于LaTeX的,所以您可以对格式化、交叉引用等进行控制。

knitr

  • 处理sweavermarkdown格式的文件
  • 可能需要一些横幅预处理(例如,使用Sweave2knitr),ref:https://yihui.name/knitr/demo/sweave/
  • 针织品原理将“解决一些长期存在的问题,并将其他附加包中的特性合并到一个包中(编织品cacheSweave +≈+ pgfSweave +织布+动画:saveLatex+ R2HTML::RweaveHTML +突出显示:HighlightWeaveLatex+ 0.2 * brew + 0.1 * SweaveListingUtils +more)”。
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53235911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档