使用瀏覽器
browser
函式可以像斷點一樣使用:程式碼執行將在呼叫它時暫停。然後,使用者可以檢查變數值,執行任意 R 程式碼並逐行逐步執行程式碼。
一旦在程式碼中命中了 browser()
,互動式直譯器就會啟動。任何 R 程式碼都可以正常執行,此外還有以下命令,
命令 | 含義 |
---|---|
C |
退出瀏覽器並繼續程式 |
F |
完成電流回路或功能 |
ñ | 跳過(評估下一個語句,逐步呼叫函式呼叫) |
小號 | Step Into(評估下一個語句,進入函式呼叫) |
哪裡 | 列印堆疊跟蹤 |
[R | 呼叫 resume 重啟 |
Q |
退出瀏覽器並退出 |
例如,我們可能有一個類似的指令碼,
toDebug <- function() {
a = 1
b = 2
browser()
for(i in 1:100) {
a = a * b
}
}
toDebug()
執行上面的指令碼時,我們最初會看到類似的東西,
Called from: toDebug
Browser[1]>
然後,我們可以與提示進行互動,
Called from: toDebug
Browser[1]> a
[1] 1
Browser[1]> b
[1] 2
Browse[1]> n
debug at #7: for (i in 1:100) {
a = a * b
}
Browse[2]> n
debug at #8: a = a * b
Browse[2]> a
[1] 1
Browse[2]> n
debug at #8: a = a * b
Browse[2]> a
[1] 2
Browse[2]> Q
browser()
也可以用作功能鏈的一部分,如下所示:
mtcars %>% group_by(cyl) %>% {browser()}