使用RStudio

时间:2016-02-10 11:12:23

标签: r debugging rstudio

我有两个脚本, 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中调试从另一个函数调用的函数?

1 个答案:

答案 0 :(得分:3)

R的source函数不尊重断点。如果要调试该函数,可以尝试这样做:

  1. 来源fun.r(独自)。您会在环境窗格中看到fun()的副本。

  2. 添加断点。您将在环境窗格中看到标有断点图标的fun()副本。

  3. 从main.r中删除源自fun.r的行(不需要,因为它已经来源)

  4. 来源main.r

  5. 你会遇到断点。

    要记住的重要一点是,必须已经存在一个函数才能在其上设置断点,并且source用没有断点的新副本替换具有断点的副本。