2017-02-23 65 views
0

我正在使用R軟件包「GeoDE」。當我使用函數「chdirAnalysis」時,會自動繪製一個圖形,因爲在「chdirAnalysis」的源代碼中有一個命令「plot」。但我不想那樣。我怎樣才能阻止呢?從R軟件包中隱藏功能圖

類似的問題是隱藏在函數打印的消息,我已經找到了解決辦法是使用隱形

capture.output(value <- function_name(input)) 

這可以幫助隱藏「函數名」的輸出,但這種解決方案在劇情上不起作用。

回答

2

選項:

  1. 問維護者的plot=FALSE選項添加到函數(也許verbose=FALSE選項停止文本輸出)。

  2. 編輯chdirAnalysis的源代碼並刪除進行繪圖的函數調用,或將其隱藏在新的plot=FALSE選項後面。我認爲這是chdirplots,它被調用,但對返回值沒有任何作用。如果您在GeoDE包源外進行此操作,則需要將GeoDE:::前綴添加到由chdirAnalysis(如chdirSig)調用的任何未導出的GeoDE函數中。

  3. 將其繪製成某些虛擬或一次性圖形設備文件,如其他問題和答案中所述。

+0

謝謝@Spacedman。我會以「1」的身份執行此操作。對於2,這非常有幫助。由於我試圖在代碼中粘貼'chdirAnalysis'的定義,並通過刪除繪圖部分來修改'chdirAnalysis'的定義,但由於它會調用包'chdirSig'中的另一個函數,所以我必須將該函數的定義粘貼到我的代碼中。但'GeoDE :::'完美地解決了這個問題! 3,對不起,但我不明白。 – XiaokangZH

+0

(3)正在做類似於'pdf(file =「/ dev/null」)''的東西,它打開一個圖形設備,將其輸出發送到一個PDF文件(在Linux/Unix上)。你甚至可以把它發送到一個真實的文件,如't = tempfile(); pdf(file = t); doplotstuff(...); dev.off(); file.remove(t)'並且不會在屏幕上顯示。 – Spacedman

+0

瞭解到新的東西。謝謝! – XiaokangZH