2013-03-14 59 views
22

禁止消息这里是我的RMarkdown文件的代码:在Knitr/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,我仍然得到在HTML文件输出的消息,当我运行getSymbols()dev.off()。它们各自的输出是:

[1] "RUT" 

null device 
      1 

如何抑制这些信息?

+0

这个回答我的问题,不会被抑制 HTTP A错误: //stackoverflow.com/questions/24978427/suppressing-error-messages-in-knitr – user2673238 2015-08-13 21:04:59

回答

15

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

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

从帮助页面?invisible:当需要有函数返回可分配,但没有分配时,他们不打印值

这个功能非常有用。

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

+2

还在寻找一种方式来打压ggplot电话警告。将ggplot调用隐藏起来也会抑制图像,这是一种反作用。 :) – 2013-04-21 09:39:25

+0

嗨,我有与使用“ksvm”相同的问题。不幸的是,“隐形”不起作用。 – CodingButStillAlive 2016-10-21 10:25:09

35

使用knitr时,你应该永远不会需要使用dev.off()。它负责所有设备的创建。

从包作者Yihui

God kills a kitten whenever you dev.off()

null device 
      1 

dev.off()输出。

这可能是getSymbols返回给定的东西,你没有定义env

如果你想隐藏结果(output)(一般),可以使用results = 'hide'作为一个选项。无需包裹在invisible()

+0

+1我不知道的有关'dev.off()'是珍闻和knitr。谢谢! – A5C1D2H2I1M1N2O1R2T1 2013-03-14 10:13:27

+16

请务必包括我的小猫的海报当你看到'dev.off()':http://yihui.name/en/2012/06/enjoyable-reproducible-research/ – 2013-03-14 21:54:27

+2

@yihui - 我正在寻找的是小猫(没有成功)。我已经包括它。 – mnel 2013-03-14 22:00:03

25

冉任何东西到这个问题还有,我想补充一点,它应该是warning = FALSE,warnings = FALSE