由于来自 Pandoc 的 InvalidUrlException,Markdown 中的 rChart 不呈现

rChart in Markdown doesn't render due to InvalidUrlException from Pandoc

我正在尝试使用 rCharts 库嵌入一个简单的散点图,但它不起作用。根据我在几个 SO 问题上找到的答案,我想出了这段代码:

``` {r, results = "asis", comment = NA}
library(rCharts)
p <- rPlot(mpg ~ wt, data = mtcars, type = "point")
p$print("chart", include_assets = TRUE)
```

但是,当我编织markdown文档时,出现了这个错误:

pandoc.exe: Could not fetch C:/Playground/R-3.2.2/library/rCharts/libraries/polycharts/js/polychart2.standalone.js
InvalidUrlException "C:/Playground/R-3.2.2/library/rCharts/libraries/polycharts/js/polychart2.standalone.js" "Invalid scheme"
Error: pandoc document conversion failed with error 67

谷歌搜索此错误表明 Pandoc 似乎在绝对路径方面存在一些问题。一些建议是更新 RStudio 并使用相对路径。前者不是解决方案,因为我是最新的,后者不是解决方案,因为文件路径是由函数指定的,而不是由我指定的。

那么我的问题是,是否有任何其他解决方案可以让它发挥作用?

这是我的会话信息:

Session info ----------------------------------------------------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.2.2 (2015-08-14)
 system   x86_64, mingw32             
 ui       RStudio (0.99.441)          
 language (EN)                        
 collate  English_United States.1252  
 tz       America/New_York            
 date     2015-11-24                  

Packages --------------------------------------------------------------------------------------------------------------------------------
 package    * version    date       source                                            
 devtools     1.9.1      2015-09-11 CRAN (R 3.2.2)                                     
 gtable       0.1.2      2012-12-05 CRAN (R 3.2.2)                   
 htmltools    0.2.6      2014-09-08 CRAN (R 3.2.2)                   
 httr         1.0.0      2015-06-25 CRAN (R 3.2.2)                                     
 R6           2.1.1      2015-08-19 CRAN (R 3.2.2)                   
 rCharts    * 0.4.5      2015-10-26 Github (ramnathv/rCharts@389e214)                  
 rmarkdown  * 0.8.1      2015-10-10 CRAN (R 3.2.2)                     
 whisker      0.3-2      2013-04-28 CRAN (R 3.2.2)                   
 yaml         2.1.13     2014-06-12 CRAN (R 3.2.2) 

好吧,经过几个小时的努力让这个工作起来,我终于找到了一个解决方案,使用 John MacFarlane 的评论和他的教程,可以找到 here。如果您使用的是 Windows,您需要了解几件事才能使其正常工作。

首先,安装 Haskell 平台后,如果您的计算机没有管理员权限,cabal 将无法立即使用。因此,您需要将文件路径手动输入到 PATH 变量中。路径是/path_to_Haskell/lib/extralibs/bin

现在您可以从命令行调用 cabal,您应该知道 cabal update 需要 forever 到 运行.我不严格地使用这个术语,但 10 到 15 分钟就足够了。

接下来,您需要完成 John 的教程。在克隆 github 存储库后到达 pandoc 文件夹中的部分时,请先尝试 运行 cabal install --force --enable-tests。如果它没有失败,那么你应该可以开始了。对我来说,因为当我这样做时他们正处于过渡阶段,你会收到一条消息,说有一些冲突,它会说它已经耗尽了依赖树。如果发生这种情况,请下载 John 在他的评论中链接到的 the stack binary。然后,在 pandoc 目录中,运行 stack setup 然后 stack install

完成后,继续 John 的教程克隆 pandoc-citeproc 并安装它。很遗憾,此时您还没有完成。对我来说,R 现在正在尝试使用 C:/Users/brittenb/AppData/Roaming/cabal/bin/pandoc.exe 这不是正确的可执行文件。这是我们安装 pandoc-citeproc 时创建的可执行文件,并且(在撰写本文时)版本为 15.2.1,其中不包括文件路径修复。我们想要由 stack 构建的可执行文件,它应该保存在您的 ~/AppData/Roaming/local/bin 目录中。只需将 pandoc.exe 文件复制到 ~/AppData/Roaming/cabal/bin.

最后,重新启动 R 并将你的降价编织到 HTML。一切都应该很好。