[R] help with coef

Gabor Grothendieck ggrothendieck at gmail.com
Sat Oct 21 07:16:10 CEST 2006


Also try this to look inside the objects:

> cc <- coef(lm(demand ~ Time, BOD))
> dput(cc)
structure(c(8.52142857142858, 1.72142857142857), .Names = c("(Intercept)",
"Time"))
> cc2 <- as.vector(cc)
> dput(cc2)
c(8.52142857142858, 1.72142857142857)

from which we see that the only difference in their internal representation
is the addition of the names attribute.

On 10/21/06, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
> On 10/21/06, tom soyer <tom.soyer at gmail.com> wrote:
> > Gabor,
> >
> > Thanks for the code example, but it seems that BOD is not needed. I still
>
> demand and Time are columns of BOD so if you omit it then it won't know
> where they are.
>
> > don't understand what is going on with the data structure returned by
> > coef(). The strangness is illustrated by the following example:
>
> coef returns a named vector.  as.vector returns an unnamed vector.
>
> >
> > > 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.
> > > >
> > >
> >
> >
>



More information about the R-help mailing list