当output_file路径为绝对路径时,rmarkdown :: render会导致错误

时间:2017-04-07 10:13:16

标签: r r-markdown pandoc

我有R包,它的功能之一 - 产生报告。 在inst / markdown中,我有一个模板 rep.rmd 在包函数 ProduceReport()中,我有以下代码:

  render.file <-"rep.Rmd"
  render.file <- system.file(TEMPLATES.PATH, render.file, package=getPackageName())
  render.dir <- dirname(render.file)
  pdf.file <- "example.pdf"
  rmarkdown::render(render.file , quiet = FALSE, output_format = "pdf_document", 
                 output_file = pdf.file)

有效。

但如果我将最后一行更改为:

rmarkdown::render(render.file , quiet = FALSE, output_format = "pdf_document", 
                  output_file = "d:/help/me/please/example.pdf")

它不起作用(所有路径都存在)。我有错误

  

“!未定义的控制序列。\ grffile @ filename - &gt; d:\ help                                \ me \ please \ example _files / figure -... l.148 ... example_files / figure-latex / unnamed-chunk-2-1}“

     

pandoc.exe:生成PDF的错误显示Traceback重新运行与调试   错误:pandoc文档转换失败,错误43“

当我在linux服务器上使用这个变种时,它也可以工作

P.S。

我想强调的是,问题可能不在路径中(我使用标准程序file.path()来避免系统问题,示例中的路径仅用于演示)。

2 个答案:

答案 0 :(得分:2)

也许这不是一个非常好的解决方法,但它适用于WIN

lol <- rmarkdown::render(render.file , quiet = TRUE,
                output_format = "pdf_document")
file.rename(lol, pdf.file)

答案 1 :(得分:1)

您可以尝试使用output_dir函数的rmarkdown::render()参数。