美文网首页
2021-11-01 R脚本中调用rmarkdown::rend

2021-11-01 R脚本中调用rmarkdown::rend

作者: 安_f9f0 | 来源:发表于2021-11-01 15:13 被阅读0次

今天遇到了一个奇怪的问题,各种谷歌百度都没有找到对应的方案,囧。

具体问题描述

利用RStudio写好的.rmd文档,使用RStudio内置的knit按钮,或者在RStudio内部调用markdown::render()都可以正常生成结果HTML或者PDF文件。但当我将rmarkdown::render()写入一个总的R脚本(假设为test.R),然后在命令行使用

Rscript test.R

却没办法生成HTML或PDF结果,最奇怪的是运行结果没有任何error或者warning,通过插入debug点看到脚本确实是在运行到rmarkdown::render()的语句时停止了,但没有信息输出。

全网都没找到解决方案,最后自己好好想了一下,终于找到问题。

原因及解决方法

我们都知道R和RStudio是分开安装的,但我们不知道的是R安装的一般只有R的核心组件(R,Rscript等),而RStudio还会安装很多额外的功能程序,这一点从R/binRStudio/bin中的内容就可以很清楚地看到。而rmarkdown结果文件生成依赖一个程序,叫做pandoc,而这个pandoc只有在RStudio中随附安装,在R里面是没有的,这也就是为什么rmarkdown结果在RStudio中能够顺利生成,而利用R调用一样的语句确没有反应。

将pandoc可执行文件复制到R/bin下,或者将pandoc可执行文件加入系统环境变量,即可解决问题。

相关文章

网友评论

      本文标题:2021-11-01 R脚本中调用rmarkdown::rend

      本文链接:https://www.haomeiwen.com/subject/ehizaltx.html