[R] Puzzled in utilising summary.lm() to obtain Var(x)

Ajay Narottam Shah ajayshah at mayin.org
Wed Jun 15 04:36:34 CEST 2005


> > I have a program which is doing a few thousand runs of lm(). Suppose
> > it is a simple model
> >   y = a + bx1 + cx2 + e
> > 
> > I have the R object "d" where
> >   d <- summary(lm(y ~ x1 + x2))
> > 
> > I would like to obtain Var(x2) out of "d". How might I do it?
> > 
> > I can, of course, always do sd(x2). But it would be much more
> > convenient if I could snoop around the contents of summary.lm and
> > extract Var() out of it. I couldn't readily see how. Would you know
> > what would click?
> 
> Is the question how to get the variance of a column of the
> model matrix for a model that is the sum of terms given only
> summary output and the column name but not the name of the
> data frame?  If that is it then try this:
> 
> d <- summary(lm(Sepal.Length ~ Sepal.Width, iris)) # test data
> var(model.matrix(eval(d$call))[,"Sepal.Width"])

Yes, this is indeed exactly what I was looking for :-) Thanks,

The eval() pays the full cost of running d$call?

     -ans.

-- 
Ajay Shah                                                   Consultant
ajayshah at mayin.org                      Department of Economic Affairs
http://www.mayin.org/ajayshah           Ministry of Finance, New Delhi




More information about the R-help mailing list