Использование прогнозирования в вызове функции с объектами NLME и формулой

У меня проблема с пакетом NLME, использующим следующий код:

library(nlme)
x <- rnorm(100)
z <- rep(c("a","b"),each=50)
y <- rnorm(100)
test.data <- data.frame(x,y,z)
test.fun <- function(test.dat)
{
    form <- as.formula("y~x")   
    ran.form <- as.formula("~1|z")
    modell <- lme(fixed = form, random=ran.form, data=test.dat)
    pseudo.newdata <- test.dat[1,]
    predict(modell, newdata= pseudo.newdata) ###THIS CAUSES THE ERROR!
}

test.fun(test.data)

Предсказание вызывает ошибку, и я уже нашел, что в основном вызывает это.

Объект modell сохраняет то, как он вызывался, и предикат, кажется, использует это для прогнозирования, но не может найти объекты формул и запустил. На самом деле, я могу избежать проблемы, выполнив это:

 attach(environment(form), warn.conflicts = FALSE)
 predict(modell, newdata= pseudo.newdata) 
 detach()

Однако моя долгосрочная цель - сохранить модели на диск и использовать их позже. Полагаю, я мог бы попытаться также сохранить объекты формул, но это кажется мне очень раздражающим и громоздким способом решения проблемы.

Я работаю с автоматически сгенерированными объектами формул вместо того, чтобы записывать их явно, потому что я создаю много моделей с разными определениями в виде пакетного процесса, поэтому я не могу их избежать. Таким образом, мое идеальное решение - это способ создать объект lme, чтобы потом я мог забыть об объекте формулы и предсказать «просто работает». Спасибо за любую помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос