По какой-то причине я не могу объяснить (возможно, из-за того, как внутренне работает Boot
), что вам нужно хранить свои данные в глобальной среде.См. Ошибку:
Вы можете либо присвоить свои данные глобальной среде:
library(car)
x1 <- runif(100)
y1 <- 2*x1 + runif(100)
do_boot <- function(x,y) {
assign("x",x,envir=parent.frame())
assign("y",y,envir=parent.frame())
fit <- lm(y ~ x)
Boot(fit)
rm(x)
rm(y)
}
do_boot(x1,y1)
, либо использовать их напрямую:
library(car)
x1 <- runif(100)
y1 <- 2*x1 + runif(100)
do_boot <- function() {
fit <- lm(y1 ~ x1)
Boot(fit)
}
do_boot()
Для меня оба решениястранно и некрасивоЯ предпочитаю первый, хотя.