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

时间:2014-03-27 17:11:14

标签: r knitr

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

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

当我点击RStudio中的Knit 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")'

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

感谢。

1 个答案:

答案 0 :(得分:10)

我认为你需要添加

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会自动在knitr运行的环境中加载knit()