Em Dom 20 Abr 2008, Duncan Murdoch escreveu: > On 20/04/2008 9:40 AM, Ronaldo Reis Junior wrote: > > Hi all, > > > > I have a problem with an object inside a formula in a function that I > > make. > > > > I create an object named qvartemp. This object is OK, look the levels: > >> print(levels(qvartemp)) > > > > [1] "baixomedio" "alto" > > > > Now I create a new object with a new formula: > >> new.form <- as.formula(gsub(qvar,"qvartemp",as.expression(mma$formula))) > > > > Look this new object: > >> print(new.form) > > > > Riqueza ~ Biomassa * qvartemp > > > > Now here is the problem, I try to update an existing model (mma) changing > > the formula by the new.form > > > > mmaa <- update(mma,new.form) > > > > But my function is aborted with this message: > > > > Error in eval(expr, envir, enclos) : object "qvartemp" not found > > > > If I create this object qvartemp in R section manually it my function > > work, because it get the object from my workspace (but it is usefull just > > for testing), but my function dont find this object qvartemp created > > inside the function. > > > > If I run all my function line by line without use the function it work, I > > think that is because in this case the object is created in my workspace. > > But when I run a function the object is created only in memory (not in my > > workspece) and in this case update dont find this object. > > > > Anybody can suggest any Idea to fix it? I necessary I send my function > > and a example. > > Formulas have attached environments; that's where they look for the > variables they use. You created new.form, but didn't give it the > environment of the old one. > > I think all you need is > > environment(new.form) <- environment(mma$formula) > > Duncan Murdoch
Hi Duncan, thanks for your quick reply. I think that is not the problem, because with glm or lm the formula inside the new.form work, only on update it dont work. But I try this solution, I put new.form enclosed in an environment: environment(new.form) <- environment(as.formula(gsub(qvar,"qvartemp",as.expression(mma$formula)))) But the error is the same. Thanks Ronaldo -- Ned, I am a maiden. -- palíndromo -- > Prof. Ronaldo Reis Júnior | .''`. UNIMONTES/Depto. Biologia Geral/Lab. de Biologia Computacional | : :' : Campus Universitário Prof. Darcy Ribeiro, Vila Mauricéia | `. `'` CP: 126, CEP: 39401-089, Montes Claros - MG - Brasil | `- Fone: (38) 3229-8187 | [EMAIL PROTECTED] | [EMAIL PROTECTED] | http://www.ppgcb.unimontes.br/ | ICQ#: 5692561 | LinuxUser#: 205366 ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.