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.