2013-03-14 69 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