【问题标题】:rChart in Markdown doesn't render due to InvalidUrlException from Pandoc由于 Pandoc 的 InvalidUrlException,Markdown 中的 rChart 无法呈现
【发布时间】:2015-11-24 16:39:08
【问题描述】:

我正在尝试使用 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) 

【问题讨论】:

  • pandoc 使用的 uri 解析例程允许将“C:”作为方案,因此 pandoc 将您的绝对路径视为 URL。我会解决这个问题,这样就不允许使用单字母方案。 (Pandoc 维护者。)
  • 感谢您抽出宝贵时间回复;绝对值得赞赏。在此期间我可以使用任何解决方法吗?
  • 您可以从源代码安装 pandoc。
  • 我现在正在根据您的教程github.com/jgm/pandoc/wiki/… 解决这个问题,但是当我cd pandoc; cabal install --force --enable-tests 时,我收到一个错误,说它无法解决依赖关系。它拒绝 texmath-0.8.4 一直到 0.1。有没有机会你愿意提供帮助?提前致谢。
  • 我意识到这可能是因为即使在运行cd pandoc-types; cabal install --force 并返回它实际上已经安装了该软件包之后,也找不到它。我只有 pandoc-types-1.12.4。

标签: r r-markdown pandoc rcharts


【解决方案1】:

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

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

现在您可以从命令行调用cabal,您应该知道cabal update 需要永远 才能运行。我松散地使用这个术语,但它是一个很好的 10 到 15 分钟。

接下来,您需要完成 John 的教程。克隆 github 存储库后,当您到达 pandoc 文件夹中的部分时,请先尝试运行 cabal install --force --enable-tests。如果它没有失败,那么你应该很高兴。对我来说,因为当我这样做时它们处于过渡阶段,你会收到一条消息,说存在一些冲突,它会说它已经耗尽了依赖关系树。如果发生这种情况,请下载 John 在其 cmets 中链接到的 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,它不包括文件路径修复。我们想要由堆栈构建的可执行文件,它应该保存在您的~/AppData/Roaming/local/bin 目录中。只需将pandoc.exe 文件复制到~/AppData/Roaming/cabal/bin

最后,重新启动 R 并将你的 markdown 编成 HTML。一切都应该很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 2014-02-07
    • 2020-05-04
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 2015-08-24
    相关资源
    最近更新 更多