[R] help with coef

Christos Hatzis christos at nuverabio.com
Sat Oct 21 07:08:47 CEST 2006


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 at 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 at stat.math.ethz.ch
[mailto:r-help-bounces at 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 at 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 at 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 at 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 at 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.



More information about the R-help mailing list