update.formula gotcha (PR#8462)
(Reported by S?ren H?jsgaard) Looks like update.formula is stripping of parentheses in cases where they shouldn't be
update.formula (Reaction ~ Days + (Days | Subject), . ~ . + I(Days^2))
Reaction ~ Days + Days | Subject + I(Days^2) Notice that the right hand side is interpreted with the bar at the root of the parse tree, as in (Days + Days) | (Subject + I(Days^2)):
f <- update.formula (Reaction ~ Days + (Days | Subject), . ~ . + I(Days^2)) f[[3]]
Days + Days | Subject + I(Days^2)
f[[3]][[1]]
`|`
This confuses lmer() rather badly:
library(lme4)
example(lmer)
update(fm1,formula = . ~ . + I(Days^2))
------>
Error in x[[2]] : object is not subsettable
Error in model.matrix(eval(substitute(~T, list(T = x[[2]]))), frm) :
unable to find the argument 'object' in selecting a method for function 'model.matrix'
O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907