【发布时间】:2014-07-21 10:42:54
【问题描述】:
这个问题是我尝试通过knitr 和rmarkdown R 包从R Markdown 文档中获得一些经验的必然结果。虽然.Rmd => HTML 转换似乎是在 RStudio(Knit HTML 按钮)内自动进行的,但我尝试在 RStudio 之外进行相同操作(Rscript -e 'library(rmarkdown); render("knitr-example-slides-1.Rmd")')失败了,因为根据消息,我的上缺少pandoc系统。这很可能是错误的,因为 RStudio 以某种方式设法执行了转换。因此,很可能是访问和/或路径问题。
在不知道 RStudio 维护 pandoc 的位置以及有关访问权限的详细信息的情况下,我决定自己安装 pandoc。不幸的是,sudo apt-get install pandoc 并不是很有帮助,因为 Ubuntu 的 trusty 存储库 (14.04LTS) 中 pandoc 的当前版本是 1.12.2.1。根据rmarkdown的消息,需要1.12.3或更高版本。 “没什么大不了的”,我想,并按照说明安装pandoc,以防存储库中的版本太旧(http://johnmacfarlane.net/pandoc/installing.html)。这需要安装 Haskell 平台,该平台非常大而且输出相当冗长。一段时间后,我终于收到了以下失败消息:
[ 6 of 57] Compiling Text.Pandoc.Readers.TeXMath ( src/Text/Pandoc/Readers/TeXMath.hs, dist/build/Text/Pandoc/Readers/TeXMath.o )
src/Text/Pandoc/Readers/TeXMath.hs:30:38:
Ambiguous occurrence `readTeXMath'
It could refer to either `Text.Pandoc.Readers.TeXMath.readTeXMath',
defined at src/Text/Pandoc/Readers/TeXMath.hs:56:1
or `Text.TeXMath.readTeXMath',
imported from `Text.TeXMath' at src/Text/Pandoc/Readers/TeXMath.hs:33:1-19
(and originally defined in `Text.TeXMath.Parser')
Failed to install pandoc-1.12.4.2
cabal: Error: some packages failed to install:
pandoc-1.12.4.2 failed during the building phase. The exception was:
ExitFailure 1
pandoc-citeproc-0.3.1 depends on pandoc-1.12.4.2 which failed to install.
首先,我不确定如何修复它。其次,我非常怀疑应该有一种更简单的方法来享受使用rmarkdown 和pandoc 生成可重现的报告,而不是这样。 您的建议将不胜感激!
更新(见 cmets):
Rscript -e 'library(rmarkdown); render("knitr-example-slides-1.Rmd")'
processing file: knitr-example-slides-1.Rmd
|....... | 11%
ordinary text without R code
|.............. | 22%
label: setup (with options)
List of 1
$ include: logi FALSE
Quitting from lines 6-8 (knitr-example-slides-1.Rmd)
Error in eval(expr, envir, enclos) : object 'opts_chunk' not found
Calls: render ... handle -> withCallingHandlers -> withVisible -> eval -> eval
Execution halted
【问题讨论】:
-
RStudio 已经提供了 Pandoc 的二进制编译版本,因此您可以简单地创建一个符号链接,以便您可以轻松地在 RStudio 生态系统之外使用它:github.com/rstudio/rmarkdown/blob/master/…
-
@daroczig:太棒了,感谢您清晰快速的回复!我知道应该有一个更简单的方法...... :-)。将尝试在这里报告。
-
好吧,我按照 RStudio Server 的说明进行操作。但是,处理示例
.Rmd文件 (github.com/yihui/knitr-examples/blob/master/009-slides.Rmd) 的尝试失败,如上面的 UPDATE 所示。有任何想法吗? (我知道这与原始问题不同,但可能不值得创建一个单独的问题。) -
如果我不想安装 RStudio,有什么解决办法吗?
-
@January:那是很久以前的事了,所以我不确定
markdown对pandoc的版本要求是什么。但是,您绝对可以尝试install a binary package for your platform 看看它是否有效。如果没有,那么我会看到两个替代选项:1)安装RStudio; 2) 从源代码构建pandoc。话虽如此,我很确定pandoc的当前二进制包应该足够了,除非您需要一些最新的更新。祝你好运!
标签: r knitr pandoc r-markdown reproducible-research