Powiedzmy, że właśnie nazwałem funkcję, f
i gdzieś w funkcji wystąpił błąd. Chcę tylko móc sprawdzić wartości różnych zmiennych tuż przed wystąpieniem błędu.Uzyskiwanie stanu zmiennych po wystąpieniu błędu w R
Załóżmy, że moje jelito mówi mi, że to mały błąd, więc jestem zbyt leniwy, aby użyć debug(f)
i zbyt leniwy, aby wstawić browser()
do części funkcji, w której myślę, że coś idzie źle. I jestem zbyt leniwy, aby zacząć wstawiać oświadczenia print()
.
Oto przykład:
x <- 1:5
y <- x + rnorm(length(x),0,1)
f <- function(x,y) {
y <- c(y,1)
lm(y~x)
}
Wywołanie f(x,y)
otrzymujemy następujący błąd:
Error in model.frame.default(formula = y ~ x, drop.unused.levels = TRUE) :
variable lengths differ (found for 'x')
W tym przykładzie chcę chwycić stan środowiska tuż przed lm()
nazywa; w ten sposób mogę zadzwonić pod numer x
i y
i zobaczyć, że ich długości są różne. (Ten przykład może być zbyt prosty, ale mam nadzieję, że wpadnie na ten pomysł.)
Link jest teraz martwy. Chciałbym to przeczytać! Westchnienie – Ameya