抑制Knitr / Rmarkdown中的消息

时间:2013-03-14 09:56:43

标签: r knitr r-markdown

以下是我的RMarkdown文件的代码:

```{r echo=FALSE, message=FALSE}
opts_chunk$set(comment = NA, echo=FALSE, message = FALSE, warnings = FALSE)
options("getSymbols.warning4.0"=FALSE)
Sys.setenv(TZ = "GMT")
library(quantmod)
library(xtable)
library(PerformanceAnalytics)
```

```{r}
getSymbols("^RUT")
chart.TimeSeries(RUT)
dev.off()
```

尽管设置为message = FALSE, warnings = FALSE,但在运行getSymbols()dev.off()时,我仍然会在HTML文件中收到输出消息。他们各自的产出是:

[1] "RUT"

null device 
          1 

如何取消这些讯息?

3 个答案:

答案 0 :(得分:37)

使用dev.off()时,您永远不需要使用knitr。它负责创建绘图的所有设备。

来自套餐作者Yihui

God kills a kitten whenever you dev.off()

null device 
          1 

dev.off()的输出。

getSymbols可能会返回给定您未定义env

的内容

如果您想隐藏结果(output)(一般情况下),您可以使用results = 'hide'作为选项。无需在invisible()

中包装任何内容

答案 1 :(得分:33)

也遇到这个问题,我想补充说它应该是warning = FALSE,而不是warnings = FALSE

答案 2 :(得分:16)

尝试使用invisible来抑制这些类型的输出。

```{r}
invisible(getSymbols("^RUT"))
chart.TimeSeries(RUT)
invisible(dev.off())
```

来自?invisible的帮助页面:

  

当希望函数返回可以分配的值但在未分配时不打印时,此功能非常有用。

这些都不是“消息”或“警告”,而是实际输出值。您会看到getSymbols消息确实被输出中的knitr抑制。