[R] Newbie question about by() -- update

david.beede@mail.doc.gov david.beede at mail.doc.gov
Wed Mar 21 16:33:46 CET 2001


Prof. Ripley --
I made the change you suggested, and it works.  Thank you very much for
your help.




Prof Brian D Ripley <ripley at stats.ox.ac.uk>@auk.stats> on 03/20/2001
05:21:28 PM

Sent by:  <ripley at auk.stats>


To:   <david.beede at mail.doc.gov>
cc:   <r-help at stat.math.ethz.ch>

Subject:  Re: [R] Newbie question about by() -- update


On Tue, 20 Mar 2001 david.beede at mail.doc.gov wrote:

>
> Prof. Ripley --
> Thank you for your reply.
>
> I'm not sure how to confirm your suggestion.  I found the line that you
> cited in ppr.formula in the ascii file containing the modreg R code --
can
> I simply change that line and rerun my example?  Or is there more to it
> than that?

Yes, no. You can also do

library(modreg)
fix(ppr.formula)
# try example.

>
>
>
>
> Prof Brian D Ripley <ripley at stats.ox.ac.uk>@auk.stats> on 03/20/2001
> 03:08:48 PM
>
> Sent by:  <ripley at auk.stats>
>
>
> To:   <david.beede at mail.doc.gov>
> cc:   <r-help at stat.math.ethz.ch>
>
> Subject:  Re: [R] Newbie question about by() -- update
>
>
> On Tue, 20 Mar 2001 david.beede at mail.doc.gov wrote:
>
> > Sorry about the lack of detail.  I am running R v.1.2.2.  I can recast
my
> > question
> > (which I think I have partially answered) more succinctly as follows:
> >
> > 1.  This seems to work (note that group takes values 1,2,3,4, or 5):
> >  my.newfun <- function(x) myfile <- lm(award ~ ilogemp + ilogage, x)
> >  test.by <- by(wintemp, as.factor(wintemp$group), my.newfun)
> >
> > 2.  This does not work (leaving aside whether I am using ppr correctly
or
> not!):
> > > my.pprfun <- function(x) mypprfile <- ppr(award ~ ilogemp + ilogage,
> data = x, nterms = 5,
> > +                max.terms = 10, optlevel = 3)
> > >  test.by <- by(wintemp, as.factor(wintemp$group), my.pprfun)
> > Error in model.frame.default(formula = award ~ ilogemp + ilogage, data
=
> x) :
> >      Object "x" not found
> >
> > 3.  However, this does seem to work, but I don't know enough about R to
> explain why:
> > > my.pprfun <- function(x) mypprfile <- ppr(award ~ ilogemp + ilogage,
> > +   data = eval.parent(substitute(x),3), nterms = 5, max.terms = 10,
> optlevel = 3)
> > >  test.by <- by(wintemp, as.factor(wintemp$group), my.pprfun)
> >
> > If I understand this (and p. 69 of S Programming by VR) correctly, it
> seems as though
> > I have to evaluate x three environments up the call sequence from ppr,
> but I don't have
> > to do so for lm.  I don't yet fully understand how the environments
work,
> and I'm afraid
> > that only a little knowledge is dangerous!  Can anyone explain the
> difference between
> > lm and ppr in this context?
>
> There's a bug in ppr.formula:
>
>     m <- eval(m, sys.parent())
>
> should be (in R)
>
>     m <- eval(m, parent.frame())
>
> I think that will fix it, but please confirm.
>
> --
> 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 272860 (secr)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
>
>
>
>
>

--
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 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list