Josh's solution should be fine. just one more note, trt>0 may not work as intended since trt is a factor in your example. Just check subset(dat,trt>0) wich is just 'dat'.
Am 21.08.2012 17:41, schrieb Rainer M Krug: > 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. >>>> >>>> >>>> >>> >>> >> >> > > -- Eik Vettorazzi Institut für Medizinische Biometrie und Epidemiologie Universitätsklinikum Hamburg-Eppendorf Martinistr. 52 20246 Hamburg T ++49/40/7410-58243 F ++49/40/7410-57790 ______________________________________________ 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.