2013-03-14 18 views
22

Đây là mã cho file RMarkdown tôi:điệp Đàn áp trong 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() 
``` 

Mặc dù các thiết lập message = FALSE, warnings = FALSE, tôi vẫn nhận được thông điệp đầu ra trong file HTML khi tôi chạy getSymbols()dev.off(). kết quả đầu ra tương ứng của họ là:

[1] "RUT" 

null device 
      1 

Làm thế nào để ngăn chặn những thông điệp này?

+0

này đã trả lời vấn đề của tôi với một lỗi mà không bị đè nén http: //stackoverflow.com/questions/24978427/suppressing-error-messages-in-knitr – user2673238

Trả lời

15

Hãy thử sử dụng invisible để chặn các loại đầu ra đó.

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

Từ trang trợ giúp cho ?invisible:

Chức năng này có thể hữu ích khi nó là mong muốn có chức năng trả về giá trị mà có thể được giao, nhưng mà không in khi họ không được giao.

Không phải là "thông báo" hoặc "cảnh báo", nhưng giá trị đầu ra thực tế. Bạn sẽ thấy rằng các thông báo cho getSymbols thực sự bị chặn bởi knitr trong đầu ra.

+2

Vẫn đang tìm cách ngăn chặn cảnh báo cho các cuộc gọi ggplot. Gói ggplot gọi vào vô hình ngăn chặn hình ảnh là tốt, đó là loại phản tác dụng. :) –

+0

Xin chào, tôi có cùng sự cố với việc sử dụng "ksvm". Thật không may, "vô hình" không hoạt động. – CodingButStillAlive

35

Bạn không bao giờ cần phải sử dụng dev.off() khi sử dụng knitr. Nó sẽ chăm sóc của tất cả các thiết bị để tạo ra các lô.

Từ tác giả gói Yihui

God kills a kitten whenever you dev.off()

null device 
      1 

là đầu ra của dev.off().

Nó có thể là một cái gì đó getSymbols lợi nhuận cho rằng bạn chưa xác định env

Nếu bạn muốn ẩn các kết quả (output) (nói chung), bạn có thể sử dụng results = 'hide' như một tùy chọn. Không cần phải quấn bất cứ điều gì trong invisible()

+0

+1 Tôi không biết rằng thông tin về 'dev.off()' và knitr. Cảm ơn! – A5C1D2H2I1M1N2O1R2T1

+16

hãy chắc chắn bao gồm poster kitten của tôi khi bạn thấy 'dev.off()': http://yihui.name/en/2012/06/enjoyable-reproducible-research/ –

+2

@yihui - Tôi đang tìm kiếm con mèo con đó poster (không thành công). Tôi đã bao gồm nó ngay bây giờ. – mnel

25

Ran vào vấn đề này là tốt, tôi muốn thêm rằng nó phải được warning = FALSE, không warnings = FALSE

Các vấn đề liên quan