This is very helpful, thanks! Lars.
> On Jan 17, 2016, at 1:34 PM, Charles C. Berry <ccbe...@ucsd.edu> wrote: > > On Sun, 17 Jan 2016, Lars Bishop wrote: > >> I’d appreciate your help on understanding the following. > >> It is not very clear to me from the model.matrix documentation, why simply >> changing the order of terms in the formula may change the number of >> resulting columns. Please note I’m purposely not including main effects in >> the model formula in this case. > > > IIRC, there are some heuristics involved harking back to the White Book. I > recall there have been discussions of whether and how this could be fixed > before on this list and or R-devel, but I cannot seem to lay my browser on > them right now. > > >> >> set.seed(1) >> x1 <- rnorm(100) >> f1 <- factor(sample(letters[1:3], 100, replace = TRUE)) >> trt <- sample(c(-1,1), 100, replace = TRUE) >> df <- data.frame(x1=x1, f1=f1, trt=trt) >> >> dim(model.matrix( ~ x1:trt + f1:trt, data = df)) >> [1] 100 4 >> >> dim(model.matrix(~ f1:trt + x1:trt, data = df)) >> [1] 100 5 >> > > By `x1:trt' I guess you mean the same thing as `I(x1*trt)'. > > If you use the latter form, the issue you raise goes away. > > Note that `I(some.expr)' gives you the ability to force the behavior of > model.matrix to be exactly what you want by suitably crafting `some.expr', > heuristics notwithstanding. > > HTH, > > Chuck > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.