[R] how to get the p-values from an lm function ?

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Jul 12 12:31:07 CEST 2007

On Thu, 12 Jul 2007, hadley wickham wrote:

> On 7/12/07, Benoit Chemineau <benoitchemineau at gmail.com> wrote:
>> Hi, dear R-users,
>> I am computing a liner regression by rating category using the 'by' function
>> as stated below:
>> tmp <- by(projet, rating, function(x) lm(defaults ~ CGDP+CSAVE+SP500, data =
>> x))
>> I would like to get not only the coefficients but also their p-values. I
>> can't find the command in the help pages to get them.
>> Does anyone have a suggestion ?
> Hi Benoit,
> A general approach to find p-values:
> m <- lm(wt ~ mpg, data=mtcars)
> First figure out how to display them on screen:
> m # nope
> coef(m) # nope
> summary(m) # got it
> # Then use str to look at the components
> str(summary(m))
> # And pick out the one want
> summary(m)$coef
> coef(summary(m)) # slighty better style, but won't work in general

If x$coef works, coef(x) will almost certainly work at least as well. 
But note that in most cases it is x$coefficients and so x$coef is liable 
to partially match erroneously.

> # In general, you may also need to try
> str(print(summary(m)))
> # as sometimes the print method calculates the data you're looking for

But a print method should always return its input, so


should be the same.

Reading the help pages would be a very good idea, as they usually not only 
tell you the names of the components of the result but also what they 

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-help mailing list