2013-01-22 71 views
2

很多時候我將評估代碼粘貼到R控制檯。有時候錯誤發生在我粘貼的陳述的中間,我想念他們,因爲他們融入了屏幕上的其他東西。有沒有辦法讓他們通過顏色編碼脫穎而出?獲得R控制檯以突出顯示紅色錯誤

+0

專業技巧:-):當你有那麼多未經測試的代碼,不要試圖同時運行這一切。更好的是,避免編寫向控制檯噴出的代碼(又名stdout)。將所有結果寫入一個對象或十二個對象,從而清理控制檯輸出。 –

+0

@CarlWitthoft:請您詳細說明一下嗎?這聽起來像是非常有用的建議! – Alex

+0

亞歷克斯 - 取決於你在做什麼。基本上,不是執行將輸出寫入控制檯的命令或函數,而是包含一個類似'return(invisible(list_of_outputs))'的行,然後執行'myfunction(...) - > testout'。警告和錯誤消息將顯示在控制檯上,您的數據將位於新變量'testout'中。 –

回答

3

在linux或mac上,您可以簡單地加載colorout包,您的錯誤將顯示爲紅色。

enter image description here

+0

這個東西是不是在cran,我有點緊張安裝的東西,改變基地R ..任何其他做這樣的東西? – Alex

3

from ?base::options錯誤:一個函數或一個表達式,用於控制非災難性錯誤的處理,例如停止以及信號和內部檢測到的錯誤所產生的錯誤。如果該選項是一個函數,則對該表達式生成對該函數的調用(不帶參數)。默認值爲NULL:在這種情況下,請參閱stop。函數dump.frames和recover提供了允許進行事後調試的替代方法。請注意,這些需要指定爲例如啓動文件(如'.Rprofile')中的選項(error = utils :: recover)。

所以,我想你可以修改你的.Rprofile以不同的方式處理錯誤,如果停止太多,也許你可以用一些換行符來包圍它們,使它們在你的代碼中脫穎而出。

1

嘗試這些:

stop("an error occurred")

message("an error occurred")

cat("error occurred", file=stderr())

1

我建議使用RStudio。它有很多控制檯和文件文本的顏色選項,非常易於更改。

下面是我的樣子。它使錯誤,警告和消息很容易被發現。

enter image description here

+0

我在Linux上通過羣集(甚至交互式)遠程使用R。我的理解是RStudio不能用於此目的,對嗎? – Alex

+0

@Alex,我不確定。抱歉。搜索RStudio鏈接可能會回答該問題。 –

+0

好聽起來不錯。謝謝! – Alex