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

Ste*_*ner 8 r knitr

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

```{r, echo=FALSE}
opts_chunk$set(results="hide", fig.show="hide")
```
Run Code Online (Sandbox Code Playgroud)

当我点击RStudio中的Knit HTML按钮时,这是有效的 - 我得到没有结果和数字的输出.但是,如果我从命令行运行:

Rscript -e 'knitr::knit("myfile.Rmd")'
Run Code Online (Sandbox Code Playgroud)

它似乎opts_chunk$set()没有读取行,我在.md输出中得到结果和图.我通过在Rscript命令中指定这些选项来解决这个问题:

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

但我宁愿保留从我正在使用的文件中读取的所有选项,而不是在命令行中指定.knit在命令行中使用Rscript 时如何获取.Rmd文件中读取的选项?

谢谢.

Ben*_*ker 10

我想你需要补充一下

library("knitr")
Run Code Online (Sandbox Code Playgroud)

到块(您可能希望message=FALSE在该块的块选项中设置).

问题是,当你这样做

Rscript -e 'knitr::knit("myfile.Rmd")'
Run Code Online (Sandbox Code Playgroud)

你实际上没有附加knitr包,这意味着它不在函数的搜索路径中,这意味着R无法找到该opts_chunk对象.

  • 使用knitr::opts_chunk也可能有用......
  • 正如你的建议,也是如此 Rscript -e 'library("knitr"); knit("myfile.Rmd")'

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