On 21/08/12 17:54, Joshua Wiley wrote:
What is wrong with what I suggested initially?

subst <- expression(trt > 0)
lm(weight ~ group, data=dat, subset=eval(subst))

That it does not work?

ctl = c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt = c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
dat <- data.frame( group = gl(2,10,20, labels=c("Ctl","Trt")),
         weight = c(ctl, trt)
         )
rm(ctl)
rm(trt)
subst <- expression(trt > 0)
lm(weight ~ group, data=dat, subset=eval(subst))
# output: Error in eval(expr, envir, enclos) : object 'trt' not found


and

lm(weight ~ group, data=dat, subset=subst)
# output: Error in xj[i] : invalid subscript type 'expression'
>

also does not work.

Rainer



??

On Tue, Aug 21, 2012 at 8:41 AM, Rainer M Krug <r.m.k...@gmail.com> wrote:
On 21/08/12 17:35, Eik Vettorazzi wrote:

Hi Rainer,
I got an error while replicating your data.frame construction.

But this worked for me

ctl = c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt = c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
dat <- data.frame( group = gl(2,10,20, labels=c("Ctl","Trt")),
           weight = c(ctl, trt)
           )


Sorry  - to much garbage in my workspace left.

Just add:

rm(ctl)
rm(trt)

after the definition


lm(weight ~ group, data=dat, subset=trt>0)


this obviously works, but I would like to have:

subst <- trt>0

lm(weight ~ group, data=dat, subset=subst)

Sorry about this,

Rainer




Cheers

Am 21.08.2012 17:11, schrieb Rainer M Krug:

On 21/08/12 16:57, Bert Gunter wrote:

?? I do not groc what you mean. ... subset == subs would work fine in
your lm call. So unless someone else does get it, you may need to
elaborate.


OK - here is an example:

dat <- data.frame(
           ctl = c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14),
           trt = c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69),
           group = gl(2,10,20, labels=c("Ctl","Trt")),
           weight = c(ctl, trt)
           )
lm(weight ~ group, data=dat, subset=trt>0)

subst <- trt>0 ### here I get the obvious error: Error: object 'trt' not
found

# I want to use:

lm(weight ~ group, data=dat, subset=subst)



In general, ?substitute, ?bquote, and ?quote are useful to avoid
immediate evaluation of calls, but I don't know if that's relevant to
what you want here.


Looks promising from the help, but I don't get it to work.

Rainer


-- Bert

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.










--
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.





--
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.

Reply via email to