Uso de predecir en una llamada de función con objetos NLME y una fórmula

Tengo un problema con el paquete NLME usando el siguiente 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)

El pronóstico causa un error y ya encontré lo que básicamente lo causa.

El objeto de modelo guarda cómo se llamaba y la predicción parece usar eso para hacer predicciones, pero no puede encontrar la fórmula de los objetos de forma y de ejecución. La forma se debe a que no los busca en el espacio de nombres correcto. De hecho, puedo evitar el problema haciendo esto:

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

Sin embargo, mi objetivo a largo plazo es guardar el modelo en el disco y usarlos más tarde. Supongo que también podría intentar guardar los objetos de la fórmula, pero esto me parece una forma muy molesta y engorrosa de resolver el problema.

Trabajo con objetos de fórmula generados automáticamente en lugar de escribirlos explícitamente porque creo muchos modelos con diferentes definiciones en una especie de proceso por lotes, por lo que no puedo evitarlos. Así que mi solución ideal sería una forma de crear el objeto lme para poder olvidarme del objeto de fórmula y predecir "simplemente funciona". Gracias por cualquier ayuda.

Respuestas a la pregunta(1)

Su respuesta a la pregunta