>I am trying to understand why this line works: > > lm1x = lm(y~X-1, tmp)
Well, I would not normally define a data frame element as a matrix myself (though I might well define a list element as one). But specifying a matrix as the terms part of an lm is documented in lm's details: "If response is a matrix a linear model is fitted separately by least-squares to each column of the matrix" So _something_ will happen. Whether the something is useful depends on the intent. > Here it seems that I was combining the design matrix and the data frame... Did you inspect tmp after adding the design matrix? Was it an odd looking data frame or a list? What seems to have been done is that the design matrix has been added to a list. I wouldn't normally do that if tmp is a data frame, and r would not do so unless the lengths all matched. But a list should be ok. And lm takes a list or environment as its data argument, so a list of things will work even if they are different types. In other words tmp is just a ragbag of things, each of which lm understands. ******************************************************************* This email and any attachments are confidential. Any use...{{dropped:8}} ______________________________________________ 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.