# [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

str(summary(m))
str(print(summary(m)))

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
mean.

--
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

```