Usando prever em uma chamada de função com objetos NLME e uma fórmula

Eu tenho um problema com o pacote NLME usando o seguinte código:

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)

A previsão causa um erro e eu já encontrei o que basicamente causa isso.

O objeto de modelo salva como foi chamado e a previsão parece usá-lo para fazer a previsão, mas não consegue encontrar a forma dos objetos de fórmula e o ran.form, porque não procura por eles no namespace correto. Na verdade, posso evitar o problema fazendo isso:

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

Meu objetivo de longo prazo, no entanto, é salvar o modell em disco e usá-lo depois. Eu suponho que eu poderia tentar salvar os objetos de fórmula também, mas isso me parece uma maneira muito chata e complicada de lidar com o problema.

Eu trabalho com objetos de fórmula gerados automaticamente em vez de escrevê-los explicitamente porque eu crio muitos modelos com definições diferentes em uma espécie de processo em lote, portanto não posso evitá-los. Portanto, minha solução ideal seria uma maneira de criar o objeto lme para que eu possa esquecer o objeto de fórmula posteriormente e prever "apenas funciona". Obrigado por qualquer ajuda.

questionAnswers(1)

yourAnswerToTheQuestion