У меня есть функция R, запрограммированная на stop , когда ввод не является вызовом от "aov()"
или "lm()"
.
Ниже я ожидаю, что при использовании fit3
в качестве ввода моя функция будет stop
, но мне интересно, почему это не так?
PS Функция корректно останавливается при подаче fit4
, НО не останавливается при подаче fit3
;ПОЧЕМУ?
fit2 <- aov(mpg ~ wt, data = mtcars)
library(rstanarm)
fit3 <- stan_glm(mpg ~ wt, data = mtcars) # This call is from "rstanarm" package !!
fit4 <- glm(vs~mpg, data = mtcars)
bb <- function(fit = NA){
if(!(any(is.na(fit)))){
if(fit$call[1] != "lm()" && fit$call[1] != "aov()") stop("Error") else "OK"
}
}
# Examples of use:
bb(fit = fit4) # stops as expected ! because call is not from "lm()" or "aov()"
bb(fit = fit3) # I expect HERE to stop also; why it doesn't? !!!!