2009-09-13 156 views
1

是否可以在不打印所有圖表等的情況下獲取文件(已經使用echo = F嘗試過)?如何在沒有輸出的情況下獲取file.R

在我的情況下,我早在腳本中調用了png(「filename%03d.png」)設備。要評論這一點並不麻煩 - 但所有圖表都需要花費大量時間進行渲染。 (我正在使用的特定文件現在使用基本圖形 - 但大多數情況下我會使用ggplot2 - 這使問題更加重要(ggplot2非常好,但在當前實現中不是最快的))

謝謝

回答

0

這不是最好的測試解決方案,但是如果你可能像這樣經常運行這個腳本,你可以聲明一個布爾值是否需要圖形(graphics_required = TRUE),然後把所有的繪圖命令放在if/then子句中在你的布爾值上,然後只是改變布爾值來改變腳本的行爲

+0

謝謝大家回答了這個問題。我認爲布爾方法是最接近的。謝謝大家 - 特別是PaulHurleyuk – Andreas

3

這對ggplot2或點陣圖形來說不是問題 - 你總是必須顯式地使用print他們在非交互式設置中調用時(如從腳本中調用)。

+0

但是,如果我有一個腳本有很多打印(劇情) - 有沒有辦法來源文件沒有打印聲明? 也許最好的辦法是爲繪圖和其他數據混合使用單獨的腳本。 – Andreas

+0

是的,定義一個布爾切換變量並決定是否打印/不打印。 –

1

也許這可能是一些幫助......

「,提供了一個空的圖形器件的封裝,包括一個小插曲,‘devNull’,該文件如何創建一個新的圖形設備作爲包裝的加「

http://developer.r-project.org/

2

良好做法進行編碼R表示包裹儘可能多的代碼儘可能進入功能。 (例如,參見R Inferno的第5章,pdf。)如果將繪圖代碼放入函數中,則在您輸入繪圖代碼時無需顯示它。比較以下內容。

文件foo.r包含

plot(1:10) 

當你調用source('foo.r'),劇情中。

文件bar.r包含

bar <- function() plot(1:20) 

當你調用source('bar.r'),該地塊未顯示。您可以通過在命令提示符處鍵入bar()來方便地顯示它。

+0

嗨Richie,非常感謝你的聯繫,以便Dante在寫日記的時候寫過的內容:-) – Andreas

相關問題