我有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()来避免系统问题,示例中的路径仅用于演示)。
答案 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()
参数。