可能重复:
调试R的一般建议?
我最近开始使用browser()函数定义进行调试(一个很棒的工具!).我觉得print()调试一直在减缓我内置调试工具的学习曲线.我失踪了的其他一些人是什么?
假设我刚刚调用了一个函数f,并且在函数的某处发生了错误.我只是希望能够在错误发生之前检查出不同变量的值.
假设我的直觉告诉我这是一个小错误,所以我懒得使用debug(f)而且懒得插入browser()功能的部分我认为出错了.而且我懒得开始print()发表声明.
这是一个例子:
x <- 1:5
y <- x + rnorm(length(x),0,1)
f <- function(x,y) {
y <- c(y,1)
lm(y~x)
}
Run Code Online (Sandbox Code Playgroud)
调用f(x,y)我们得到以下错误:
Error in model.frame.default(formula = y ~ x, drop.unused.levels = TRUE) :
variable lengths differ (found for 'x')
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我想要在lm()调用之前获取环境的状态; 这样我可以打电话x,y看看他们的长度是不同的.(这个例子可能太简单了,但我希望它可以解决这个问题.)