Skip to content

help on retrieving output from by( ) for regression

5 messages · TEMPL Matthias, Marc Schwartz, Randy Johnson +1 more

#
Look more carefully at 
?lm 
at the See Also section ...

X <- rnorm(30)
Y <- rnorm(30)
lm(Y~X)
summary(lm(Y~X))

Best,
Matthias
#
Also, looking at the last example in ?by would be helpful:

attach(warpbreaks)
tmp <- by(warpbreaks, tension, function(x) lm(breaks ~ wool, data = x))

# To get coefficients:
sapply(tmp, coef)

# To get residuals:
sapply(tmp, resid)

# To get the model matrix:
sapply(tmp, model.matrix)



To get the summary() output, I suspect that using:

  lapply(tmp, summary)

would yield more familiar output as compared to using:

  sapply(tmp, summary)

The output from the latter might require a bit more "navigation" through
the resultant matrix, depending upon how the output is to be ultimately
used.

HTH,

Marc Schwartz
On Thu, 2005-08-25 at 14:57 +0200, TEMPL Matthias wrote:
#
What about using lmList from the lme4 package?

Randy
On 8/25/05 9:44 AM, "Marc Schwartz" <MSchwartz at mn.rr.com> wrote:

            
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Randy Johnson
Laboratory of Genomic Diversity
NCI-Frederick
Bldg 560, Rm 11-85
Frederick, MD 21702
(301)846-1304
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
That works also (using the example in ?lmList)

library(lme4)

?lmList

fm1 <- lmList(breaks ~ wool | tension, warpbreaks)


However, one still would need to use either sapply() or lapply() as
below to get the details that Krishna is looking for. 

'fm1' above is a list of models (S4 class 'lmList') not overly different
from 'tmp' below, which is a list of models (S3 class 'by').

If you review str(fm1) and str(tmp), you would note that they are
virtually identical, save the use of slots, etc.

HTH,

Marc Schwartz
On Thu, 2005-08-25 at 12:17 -0400, Randy Johnson wrote:
#
Sorry to reply to my own post, but in reviewing the NAMESPACE file for
lme4, it looks like Doug is perhaps planning to add additional model
object accessor methods for the lmList class, including resid() and
summary(), which are commented out now. coef() is available presently. 

So when in place, it would appear that the use of lmList would be
advantageous over the use of by().

Marc
On Thu, 2005-08-25 at 11:52 -0500, Marc Schwartz (via MN) wrote: