Knitr:在Rscript命令中,opts_chunk$set()不起作用

9

我正在使用knitr从Rmd创建一个markdown文件,我在.Rmd脚本的顶部设置了以下选项来隐藏所有结果和图表:

```{r, echo=FALSE}
opts_chunk$set(results="hide", fig.show="hide")
```

当我在RStudio中点击“编织HTML”按钮时,它可以正常工作 - 我可以获得输出结果和图形。但是,如果我从命令行运行:

Rscript -e 'knitr::knit("myfile.Rmd")'

看起来opts_chunk$set()这一行没有被读取,我在md输出中获得了结果和图表。我通过在Rscript命令中指定这些选项来解决了这个问题:

Rscript -e 'library(knitr); opts_chunk$set(results="hide", fig.show="hide"); knit("myfile.Rmd")'

但我更愿意从我使用的文件中读取所有选项,而不是在命令行上指定。当我用Rscript在命令行上进行knit时,如何读取.Rmd文件中的选项?

谢谢。


1
会话信息可能有所帮助,您使用的是哪个版本的RStudio、knitr和R? - Gregor Thomas
1个回答

12

我认为你需要添加

library("knitr")

为了针对该代码块进行设置,您可能希望在该代码块选项中设置message=FALSE

问题在于,当您执行此操作时,

Rscript -e 'knitr::knit("myfile.Rmd")'

您实际上没有加载 knitr 包,这意味着它不在函数的搜索路径中,这意味着 R 找不到 opts_chunk 对象。

  • 使用 knitr::opts_chunk 也可能会起作用...
  • 就像您建议的那样,Rscript -e 'library("knitr"); knit("myfile.Rmd")' 也可以。

当您在 RStudio 中点击按钮时,RStudio 会自动在运行 knit() 的环境中加载 knitr


太棒了,就是这样。应该早点意识到的。谢谢。 - Stephen Turner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接