Допустим, я только что вызвал функцию 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)
}
При вызове f(x,y)
мы получаем следующую ошибку:
Error in model.frame.default(formula = y ~ x, drop.unused.levels = TRUE) :
variable lengths differ (found for 'x')
В этом примере я хочу получить состояние среды перед вызовом lm()
; таким образом я могу позвонить x
и y
и увидеть, что их длина различна. (Этот пример может быть слишком простым, но я надеюсь, что он поможет понять идею.)