2012-03-19 75 views
4

我是一個使用RScaLAPACK的R新手,每次我產生一個新的過程網格時,我都會收到一條消息。抑制R中的一些消息但留下其他消息?

> sla.gridInit(2) 
[1] "RScaLAPACK:Process Grid Initialized " 

我打算把這一行放在一個函數中,我不希望我的函數吐出這個消息。但是 - 我不想只是沉溺(「/ dev/null」)這個調用,因爲就我所知,有些地方可能會出錯,然後我會壓制有用的輸出。基本上,我希望它在成功時保持沉默,如果失敗則要大聲。什麼是完成這個最好的方法?

歡迎任何想法,包括設計考慮。

編輯: sla.gridInit()不返回任何東西。 sla.gridInit的代碼只是調用print()。

編輯: 我想捕捉輸出最好像在suppress messages displayed by "print" instead of "message" or "warning" in R。至少我會有輸出,如果我想用它做點什麼。

回答

13

您可以將此功能封裝在其中一個抑制*功能suppressMessages,suppressWarningssuppressPackageStartupMessages中。有關更多詳細信息,請參閱這些功能的幫助頁面。

+2

謝謝。我搜索了suppressMessages,發現了另一個像這樣的問題。原來,suppressMessages無法處理print()的輸出。 :P http://stackoverflow.com/questions/8797314/suppress-messages-displayed-by-print-instead-of-message-or-warning-in-r – Emily 2012-03-19 19:23:27