【问题标题】:Knitr: opts_chunk$set() not working in Rscript commandKnitr:opts_chunk$set() 在 Rscript 命令中不起作用
【发布时间】:2014-03-27 17:11:13
【问题描述】:

我正在使用 knitr 从 Rmd 创建一个降价文件,我在 .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")'

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

谢谢。

【问题讨论】:

  • 会话信息可能会有所帮助,您使用的是什么版本的 RStudio、knitr 和 R?

标签: r knitr


【解决方案1】:

我认为你需要添加

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

【讨论】:

  • 太棒了,做到了。应该意识到这一点。谢谢。
猜你喜欢
  • 2021-04-07
  • 1970-01-01
  • 2013-07-22
  • 2020-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多