我有两个脚本, main.r
# test
a = 1
source("fun.r")
b = fun(a)
c = a + b
和 fun.r
# function
fun <- function(a){
t = a*2
b = t + 1
}
我在第4行b = t + 1
的 fun.r 中放了一个断点。 RStudio忽略断点。当我运行 main.r 时,RStudio不会在 fun.r 的第4行停止:事实上,它根本不会停止。如何在RStudio中调试从另一个函数调用的函数?
答案 0 :(得分:3)
R的source
函数不尊重断点。如果要调试该函数,可以尝试这样做:
来源fun.r(独自)。您会在环境窗格中看到fun()
的副本。
添加断点。您将在环境窗格中看到标有断点图标的fun()
副本。
从main.r中删除源自fun.r的行(不需要,因为它已经来源)
来源main.r
你会遇到断点。
要记住的重要一点是,必须已经存在一个函数才能在其上设置断点,并且source
用没有断点的新副本替换具有断点的副本。