R调试时,有没有办法跳过特定的声明?

时间:2018-05-08 04:00:45

标签: r debugging

我认为大多数人都遇到了同样的问题

f1 = function(){
function1() #takes 1hour
b = function2() #takes 2hours
c = function3(b)
statement1
statement2
...}

假设function1和function2非常耗时,我想跳过至少其中一个,看看我的函数的其余部分是否有效

问题1: 有没有办法跳过function1?

问题2: 有没有办法跳过function2?这个函数2生成结果b,这对于函数继续是至关重要的,在java中有一种方法来破解b的值并使进程继续,这在R中是否也可能?

1 个答案:

答案 0 :(得分:1)

1)在调试器中,您可以在现场重新定义功能。例如,在到达调用function1之前的任何时候,请将其输入调试器:

function1 <- list

现在调用function1()实际上会调用list()

这可以在调用之前在f1之外完成。在这种情况下,我们可能希望先将function1存储在另一个名称中,以便能够轻松恢复它。

function1.orig <- function1
function1 <- list

稍后,在我们完成调试之后,我们可以通过编写:

来恢复function1
function1 <- function1.orig

2)对于function2,您可能希望按以下方式重新定义,其中32是稍后需要的临界值。

function2 <- function() 32