我有一個跨多個函數(和文件)的詳細腳本。爲了調試目的,我需要將browser
調用嵌入到各種角落和縫隙中。當我大概解決某些問題時,我想在不調試的情況下運行整個系統,因此避免使用browser
調用,因爲註釋掉所有瀏覽器調用意味着我會付出相當大的努力。 R chat上的@mdsumner建議以非交互模式運行腳本(即在Windows上使用Rscript.exe),但我可以從我的控制檯中完成該操作,以便能夠訪問例如traceback
。我已經瀏覽了瀏覽器文檔,並且找不到可以接近我想要實現的選項。有什麼建議麼?避免R中的瀏覽器調用
7
A
回答
8
這裏有三個possibliities:
1)覆蓋瀏覽器命令。這個命令添加到您的全局工作空間打開瀏覽器命令關閉:
browser <- list
,並重新打開它
rm(browser)
這可能是最簡單的,但就是有點難看由於browser
變量之中留在全球環境中。
接下來的兩個解決方案稍微長一點,但使用選項,以便沒有新的變量引入全球環境。它們也是這樣的,如果沒有設置任何選項,則不進行調試,因此如果要調試,只需設置一個選項。 if
解決方案可能比expr
解決方案更快,雖然它可能不重要。
2)使用expr =參數與選項。替換爲每個瀏覽器命令:
然後定義"Debug"
選項是TRUE
來啓用調試。
options(Debug = TRUE)
或將其設置爲別的東西或刪除其打開調試關:
options(Debug = NULL)
3)使用,如果一個選項。替換爲每個瀏覽器命令:
if (isTRUE(getOption("Debug"))) browser()
然後設置Debug
選項或不如在現有點。
+0
邁克爾和馬雷克的所有好評,但我選擇這一個作爲正確的,因爲它有三種方法的概述。 – 2011-06-17 14:44:42
2
我認爲這只是微妙地使用調試功能。如果要選擇性控制browser()
的使用,請將其放入if
中,以便啓用或禁用該功能的調試。當你想瀏覽器中調用,做出明確的像
myfun(x, debug = TRUE)
4
定義,而不是browser()
利用全球邏輯值
debug_mode <- TRUE
然後
if (debug_mode) browser()
相關問題
- 1. 避免瀏覽器
- 2. 避免瀏覽器彈出
- 3. 避免瀏覽器復位
- 4. 避免瀏覽器緩存
- 5. 避免asp.net中的瀏覽器緩存
- 6. 使用JavaScript避免瀏覽器刷新
- 7. 避免php頁面調用與瀏覽器的帖子參數
- 8. 避免凌亂的瀏覽器死亡
- 9. 避免在瀏覽器中瀏覽緩存
- 10. 避免Python CGI瀏覽器超時
- 11. 避免HREF打開瀏覽器
- 12. 如何避免默認Android瀏覽器
- 13. 避免從瀏覽器導航url
- 14. 如何避免使瀏覽器崩潰?
- 15. 避免在特定瀏覽器中運行asp.net應用程序
- 16. 避免在硒調用期間在遠程服務器上打開瀏覽器
- 17. PHP的Mysql:避免瀏覽量溢出?
- 18. Phing避免PHPUnit配置中的Selenium瀏覽器設置
- 19. 如何在我的瀏覽器中避免重定向
- 20. YouTube API - 避免瀏覽器中的驗證屏幕
- 21. 如何避免包括瀏覽歷史
- 22. 如何避免瀏覽器請求使用Expires
- 23. 避免使用javascript瀏覽器打印對話框
- 24. 檢測瀏覽器語言並避免空引用異常
- 25. 避免彈出應用程序註銷瀏覽器關閉
- 26. 避免從瀏覽器中下載文件
- 27. 如何避免在瀏覽器中停止腳本錯誤
- 28. 避免在Chrome擴展中創建瀏覽器操作
- 29. 避免在瀏覽器中緩存頁面
- 30. 如何避免在瀏覽器中顯示「C:fakepath」
看看最近發佈的這個非常類似的問題的答案:http://stackoverflow.com/q/6286092/602276 – Andrie 2011-06-17 08:14:47
我將使用'options(debug =「FALSE」)'和函數內部:'if(options(「debug」))browser()'。謝謝! – 2011-06-17 08:28:54
將其包含在名爲'dbrowser'的函數定義中,並用dbrowser()替換所有瀏覽器()調用 - 而不是用if(options)-browser兩行代碼替換它們。 – Spacedman 2011-06-17 09:27:27