"Gabor Grothendieck" <[EMAIL PROTECTED]> writes: > Peter Dalgaard <[EMAIL PROTECTED]> writes: > > > > "Gabor Grothendieck" <[EMAIL PROTECTED]> writes: > > > > > > > as.character(attr(terms(`a(b)`~`c(d)`),"variables")) > > > > [1] "list" "`a(b)`" "`c(d)`" > > > > > > > > whereas for instance > > > > > > > > > sapply(attr(terms(`a(b)`~`c(d)`),"variables")[-1],as.character) > > > > [1] "a(b)" "c(d)" > > > > > > 1. That is quite subtle but a fix based on that would appear to > > > solve it. > > > > Hmm, not quite. I tried, and terms like offset(foo) gets me in > > trouble. Probably, I was fixing the wrong end of the original problem: > > In the comparisons, we can't have one side with backquotes and the > > other without them. That doesn't have to mean that they should be > > removed from both sides, and indeed it would get us in trouble if > > someone was perverse enough to do things like > > > > y ~ `offset(foo)` + offset(foo) > > > > I.e. perhaps the real issue is that names(data) gets generated without > > backquotes. > > > > Anyways, this is a real can of worms and I'm not sure we're not too > > close to 2.0.0 to start tampering with it... > > How about a partial fix that does not address pathological > cases where the variable names themselves have embedded > backquotes but does address the common cases such as: > > y <- ts(1:10); x1 <- y^2; x2 <- y^4 > lm(`lag(y)` ~ ., cbind(lag(y), x1, diff(x2)) ) > > without having to resort to: > > lm(lag.y ~ ., cbind(lag.y = lag(y), x1, diff(x2)) )
I've committed a fix that at least handles Gabor's examples without breaking the test suite. This will *not* cure the issues paraphrased as y ~ `offset(foo)` + offset(foo), i.e. that a "funny name" and a function call or special construct can lead to the same variable name in the model frame. I strongly suspect that this cannot be done without splitting everything apart and reassembling it into a new design. So, well, just don't do that! -- O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel