Кажется, что функция update
в mselect
не имеет доступа к исходному кадру данных при запуске изнутри функции. Моим решением было добавить аргумент data
в строку 34.
[1] my_mselect <- function(...
...
[33] tempObj <- try(update(object, fct = fctList[[i]],
[34] data = object$origData), # <--- line added here
[35] silent = TRUE)
Я также заметил, что ссылка на переменные модели также не работает, если вместо их исходных имен используются их относительные позиции, например, при использовании drm(data[, 1] ~ data[, 2], fct = LL.4())
. Чтобы избежать этого, вы можете использовать временный фрейм данных в своей функции, установить имена переменных по своему усмотрению и использовать эти имена в вызове drm
.
best.fit <- function(data){
tmp_data <- data
names(tmp_data) <- c("Var1", "Var2")
model1 <- drm(Var1 ~ Var2, data = tmp_data, fct = LL.4())
M1 <- my_mselect(model1, list(LL.5(), LN.4(), W1.4(), W2.4()))
return(M1)
}