Le mercredi 29 août 2012 à 04:01 -0700, Joshua Wiley a écrit :
> On Wed, Aug 29, 2012 at 3:56 AM, Milan Bouchet-Valat <nalimi...@club.fr> 
> wrote:
> > Le mardi 21 août 2012 à 07:51 -0700, Joshua Wiley a écrit :
> >> Hi Rainer,
> >>
> >> You could try:
> >>
> >> subs <- expression(dead==FALSE & recTreat==FALSE)
> >>
> >> lme(formula, subset = eval(subs))
> >>
> >> Not tested, but something along those lines should work.
> > Out of curiosity, why isn't "subset" (and "weights", which is very
> > similar in that regard) evaluated in the "data" environment, just like
> > the formula? Is this for historical reasons, or are there drawbacks to
> > such a feature?
> 
> I am not sure about weights offhand, but subset is evaluated in the
> data environment----that is why that solution works.  The original
> question was how to setup the expression as an object that was passed
> to subset.  The trick is to avoid having the logical expression
> evaluated when the object is created, which I avoided by using
> expression, and then in lme() forcing the evaluation of the object.
OK, my phrasing was not really correct. What I meant (and what triggered
the OP question) was : why doesn't the "subset" argument behave the same
in lm() and in subset.data.frame()? Is there any advantage to evaluating
the argument at the object creation?

AFAICS, subset.data.frame() merely uses this trick:
e <- substitute(subset)
r <- eval(e, x, parent.frame())


I'm probably missing something... ;-)

> > It seems very common to pass a data frame via the "data" argument, and
> > use variables from it for subsetting and/or weighting.
> >
> >
> > Regards
> >
> >
> >> Josh
> >>
> >> On Tue, Aug 21, 2012 at 7:44 AM, Rainer M Krug <r.m.k...@gmail.com> wrote:
> >> > Hi
> >> >
> >> > I want to do a series of linear models, and would like to define the 
> >> > input
> >> > arguments for lm() as variables. I managed easily to define the formula
> >> > arguments in a variable, but I also would like to have the "subset" in a
> >> > variable. My reasoning is, that I have the subset in the results object.
> >> >
> >> > So I wiould like to add a line like:
> >> >
> >> > subs <- dead==FALSE & recTreat==FALSE
> >> >
> >> > which obviously does not work as the expression is evaluated 
> >> > immediately. Is
> >> > is it possible to do what I want to do here, or do I have to go back to 
> >> > use
> >> >
> >> > dat <- subset(dat, dead==FALSE & recTreat==FALSE)
> >> >
> >> > ?
> >> >
> >> >
> >> >
> >> > dat <- loadSPECIES(SPECIES)
> >> > feff <- height~pHarv*year               # fixed effect in the model
> >> > reff <- ~year|plant                     # random effect in the model, 
> >> > where
> >> > year is the
> >> > dat.lme <- lme(
> >> >              fixed = feff,                           # fixed effect in 
> >> > the
> >> > model
> >> >              data  = dat,
> >> >              random = reff,                          # random effect in 
> >> > the
> >> > model
> >> >              correlation = corAR1(form=~year|plant), #
> >> >              subset = dead==FALSE & recTreat==FALSE, #
> >> >              na.action = na.omit
> >> >              )
> >> > dat.lm <- lm(
> >> >             formula =  feff,              # fixed effect in the model
> >> >             data = dat,
> >> >             subset = dead==FALSE & recTreat==FALSE,
> >> >             na.action = na.omit
> >> >             )
> >> >
> >> > Thanks,
> >> >
> >> > Rainer
> >> >
> >> > --
> >> > Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation 
> >> > Biology,
> >> > UCT), Dipl. Phys. (Germany)
> >> >
> >> > Centre of Excellence for Invasion Biology
> >> > Stellenbosch University
> >> > South Africa
> >> >
> >> > Tel :       +33 - (0)9 53 10 27 44
> >> > Cell:       +33 - (0)6 85 62 59 98
> >> > Fax :       +33 - (0)9 58 10 27 44
> >> >
> >> > Fax (D):    +49 - (0)3 21 21 25 22 44
> >> >
> >> > email:      rai...@krugs.de
> >> >
> >> > Skype:      RMkrug
> >> >
> >> > ______________________________________________
> >> > R-help@r-project.org 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@r-project.org 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.

Reply via email to