It looks clunky, but you could maintain consistency across S and R forms
with
eval(parse(text=paste("~",paste(deparse(form),collapse=" "))))
R. Woodrow Setzer, Jr. Phone:
(919) 541-0128
Experimental Toxicology Division Fax: (919) 541-5394
Pharmacokinetics Branch
NHEERL MD-74; US EPA; RTP, NC 27711
Douglas Bates
<bates@stat.wis To: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>
c.edu> cc: Woodrow Setzer/RTP/USEPA/US@EPA, r-devel@stat.math.ethz.ch,
Sent by: R-bugs@biostat.ku.dk
bates@franz.sta Subject: Re: [Rd] nlme: bug in getCovariateFormula (PR#1038)
t.wisc.edu
07/31/01 02:55
PM
Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk> writes:
Setzer.Woodrow@epamail.epa.gov writes:
The final line in getCovariateFormula() in the nlme package (version
3.1-16) is:
eval(parse(text = paste("~", deparse(form))))
however, if deparse(form) exceeds 'width.cutoff (which defaults to
60)',
this results in inappropriately placed "~" signs: For example, in my application with the error, form is UnCompetitive(MethoxyresorufinConc, InhibitorConc, Vmax, Km, Ki) the result of the paste() operation in the last line of
getCovariateFormula
is:
paste("~",deparse(form))
[1] "~ UnCompetitive(MethoxyresorufinConc, InhibitorConc, Vmax, Km, " [2] "~ Ki)" extending width.cutoff gives the intended value:
paste("~",deparse(form,width.cutoff=500))
[1] "~ UnCompetitive(MethoxyresorufinConc, InhibitorConc, Vmax, Km,
Ki)"
Seems a bit risky for an enforced cutoff in deparse, though.
parse(...deparse(...)) always looks wrong to me anyway. Couldn't one
use something like
f <- ~1
f[[2]] <- form
eval(f)
or
eval(as.call(list(as.name("~"),form)))
or eval(substitute(~form)) # that's not going to work in S, though...
Exactly. The code was originally written for S and ported to R. Some of the contorted expressions were things that we found by experimentation would work in both systems.
?? (What is the eval for? Doesn't usually do anything to a formula argument.)
In Sv3 at least it assigns a class to the object. I'll change it to eval(substitute(~form)) for the R package. -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._