Re: [R] help with coef

From: Christos Hatzis <christos_at_nuverabio.com>
Date: Sat 21 Oct 2006 - 05:08:47 GMT


Tom,

coef returns a "named" vector, which is a vector with an extra attribute called "names".
To remove the extra attribute you can:

names(a) <- NULL 	# through the accessor function
a@names <- NULL	# directly accessing the attribute names

or by creating a new vector as you did without setting its names attribute:

as.vector(a)

-Christos

-----Original Message-----
From: r-help-bounces@stat.math.ethz.ch
[mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of tom soyer Sent: Saturday, October 21, 2006 1:00 AM To: Gabor Grothendieck
Cc: r-help
Subject: Re: [R] help with coef

Gabor,

Thanks for the code example, but it seems that BOD is not needed. I still don't understand what is going on with the data structure returned by coef(). The strangness is illustrated by the following example:

> a=coef(lm(y~miles))
> is.vector(a)

[1] TRUE
> a[2]

  miles
-7.2875
> a=as.vector(a)
> is.vector(a)

[1] TRUE
> a[2]

[1] -7.2875

As you can see, although coef() returns a vector already, only after as.vector(a) is used, did a[2] include the slope without the name of the slope. Why is that, and what happened to the name of the slope (names(a) returns NULL)?

Tom

On 10/20/06, Gabor Grothendieck <ggrothendieck@gmail.com> wrote:
>
> Using the builtin BOD data frame:
>
> as.vector(coef(lm(demand ~ Time, BOD)))[2]
>
>
> On 10/21/06, tom soyer <tom.soyer@gmail.com> wrote:
> > Hi,
> >
> > I am trying to get R to return just the slope of a linear regression
> line,
> > but it seems that R has to return both the slope and the name of the
> slope.
> > For example,
> >
> > > a=coef(lm(y~miles))
> > > a
> > (Intercept) miles
> > 360.3778 -7.2875
> > > names(a)
> > [1] "(Intercept)" "miles"
> > > a[1]
> > (Intercept)
> > 360.3778
> > > a[2]
> > miles
> > -7.2875
> >
> > I don't understand the data structure that's returned from coef().
> names(a)
> > seems to suggest that coef() returns two columns of data, column one
> > is
> the
> > Intercept, and column two miles. But R keeps telling me that the
> > return value from coef() has only one dimension, i.e., a[,2] doesn't
> > work, but
> a[2]
> > works. However, a[2] contains more than the slope, it also has the
> > name
> of
> > the slope. Does anyone know how to access just the slope without its
> name?
> >
> > Thanks,
> >
> > Tom
> >
> > [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help@stat.math.ethz.ch 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.
> >
>

        [[alternative HTML version deleted]]



R-help@stat.math.ethz.ch 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.

R-help@stat.math.ethz.ch 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. Received on Sat Oct 21 15:17:09 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Sat 21 Oct 2006 - 05:30:11 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.