从共享驱动器渲染rmarkdown时出现问题

时间:2019-03-19 19:31:47

标签: r r-markdown knitr pandoc

当我的RMD文件位于共享驱动器上时,我无法呈现Markdown文件。我正在使用rmarkdown版本1.12,R版本3.5.3、64位Windows 10,pandoc 2.7.1。

我无法呈现为html,pdf或word文档。

此操作失败(文件夹路径中没有空格或标点符号):

rmarkdown::render("//cor.local/subfolders/Martin/aNewRMD.RMD")

但这成功了:

rmarkdown::render("C:/Users/AM4337/Documents/aNewRMD.RMD")

(我只是使用RStudio打开的默认新.RMD文件)。

错误消息:

processing file: aNewRMD.RMD
  |.........                                                        |  14%
  ordinary text without R code

  |...................                                              |  29%
label: setup (with options) 
List of 1
 $ include: logi FALSE

  |............................                                     |  43%
  ordinary text without R code

  |.....................................                            |  57%
label: cars
  |..............................................                   |  71%
  ordinary text without R code

  |........................................................         |  86%
label: pressure (with options) 
List of 1
 $ echo: logi FALSE

  |.................................................................| 100%
  ordinary text without R code


output file: aNewRMD.knit.md

"C:/Pandoc/pandoc" +RTS -K512m -RTS aNewRMD.utf8.md --to html4 --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash+smart --output aNewRMD.html --email-obfuscation none --self-contained --standalone --section-divs --template "C:\Users\AM4337\Documents\R\win-library\3.5\rmarkdown\rmd\h\default.html" --no-highlight --variable highlightjs=1 --variable "theme:bootstrap" --include-in-header "C:\Users\AM4337\AppData\Local\Temp\RtmpGoqMWG\rmarkdown-str421411883120.html" --mathjax --variable "mathjax-url:https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" 
pandoc.exe: aNewRMD.utf8.md: openBinaryFile: does not exist (No such file or directory)
Error: pandoc document conversion failed with error 1

2 个答案:

答案 0 :(得分:1)

我相信R还不知道如何为网络共享使用任意URI。尽管我猜测某些功能(和其他软件包)可能支持其他方案,但download.file帮助页面上说

 The function 'download.file' can be used to download a single file
 as described by 'url' from the internet and store it in
 'destfile'.  The 'url' must start with a scheme such as 'http://',
 'https://', 'ftp://' or 'file://'.

您对"//cor.local/subfolders/Martin/aNewRMD.RMD"所做的工作是告诉它与名为cor.local的主机使用Windows文件共享协议(smb,cif等)(以某种方式进行身份验证)并导航至相应的子目录,目录。

我的建议:让Windows提前处理基本身份验证,然后“挂载”它,以便本地计算机上的每个应用程序都将其视为“本地”,但将其安装到驱动器号上:

C:\Users\AM4337> net use /user:yourdomain\youruser g: \\cor.local\subfolders

(它会要求您输入密码),然后在本地使用/ p

R> rmarkdown::render("G:/Martin/aNewRMD.RMD")

答案 1 :(得分:0)

在组织升级到Windows 10后,多个用户试图运行现有的R进程时遇到了相同的问题:“错误:pandoc文档转换失败,错误为1”。

将项目文件夹更改为RStudio项目即可解决此问题。 RStudio项目使用每个用户的本地路径设置其自己的工作目录,因此将网络路径替换为带字母的本地路径。感谢@ r2evans解释了此问题并启用了此解决方法。

(对单独的答案表示歉意,我不敢评论@ r2evans的答案。)