Thanks a lot! actually, what I tried to do is very simple - just passing tons of variable names into the formula. Maybe that "get" thing suggested by Bert would work...
Dimitri On Thu, Jul 14, 2011 at 4:01 PM, David Winsemius <dwinsem...@comcast.net> wrote: > Dmitri: > > as.matrix makes a matrix out of the dataframe that is passed to it. > > As a further note I attempted and failed for reasons that are unclear to me > to construct a formula that would (I hoped) preserve the column names which > are being mangle in the posted effort: > > form <- as.formula(paste( > "cbind(", > paste( myvars, collapse=","), > ") ~ group+mydate", > sep=" ") ) >> myvars<-c("value1","value2") >> example.agg1<-aggregate(formula=form,data=example, FUN=sum) > Error in m[[2L]][[2L]] : object of type 'symbol' is not subsettable >> traceback() > 2: aggregate.formula(formula = form, data = example, FUN = sum) > 1: aggregate(formula = form, data = example, FUN = sum) > >> form > cbind(value1, value2) ~ group + mydate >> parse(text=form) > expression(~ > cbind(value1, value2), group + mydate) > > So it seems to be correctly dispatched to aggregate.formula but not passing > some check or another. Also tried with formula() rather than as.formula with > identical error message. Also tried including without naming the argument. > > -- > David > > > On Jul 14, 2011, at 3:32 PM, Dimitri Liakhovitski wrote: > >> Thank you, David, it does work. >> Could you please explain why? What exactly does changing it to "as matrix" >> do? >> Thank you! >> Dimitri >> >> On Thu, Jul 14, 2011 at 3:25 PM, David Winsemius <dwinsem...@comcast.net> >> wrote: >>> >>> On Jul 14, 2011, at 3:05 PM, Dimitri Liakhovitski wrote: >>> >>>> Hello! >>>> >>>> I am aggregating using a formula in aggregate - of the type: >>>> aggregate(cbind(var1,var2,var3)~factor1+factor2,sum,data=mydata) >>>> >>>> However, I actually have an object (vector of my variables to be >>>> aggregated): >>>> myvars<-c("var1","var2","var3") >>>> >>>> I'd like my aggregate formula (its "cbind" part) to be able to use my >>>> "myvars" object. Is it possible? >>>> Thanks for your help! >>>> >>> >>> Not sure I have gotten all the way there, but this does work: >>> >>> >>> example.agg1<-aggregate(as.matrix(example[myvars])~group+mydate,sum,data=example) >>> >>>> example.agg1 >>> >>> group mydate example[myvars] NA >>> 1 group1 2008-12-01 4 4.2 >>> 2 group2 2008-12-01 6 6.2 >>> 3 group1 2009-01-01 40 40.2 >>> 4 group2 2009-01-01 60 60.2 >>> 5 group1 2009-02-01 400 400.2 >>> 6 group2 2009-02-01 600 600.2 >>> >>>> Dimitri >>>> >>>> Reproducible example: >>>> >>>> mydate = rep(seq(as.Date("2008-12-01"), length = 3, by = "month"),4) >>>> value1=c(1,10,100,2,20,200,3,30,300,4,40,400) >>>> value2=c(1.1,10.1,100.1,2.1,20.1,200.1,3.1,30.1,300.1,4.1,40.1,400.1) >>>> >>>> example<-data.frame(mydate=mydate,value1=value1,value2=value2) >>>> >>>> >>>> example$group<-c(rep("group1",3),rep("group2",3),rep("group1",3),rep("group2",3)) >>>> example$group<-as.factor(example$group) >>>> (example);str(example) >>>> >>>> >>>> >>>> example.agg1<-aggregate(cbind(value1,value2)~group+mydate,sum,data=example) >>>> # this works >>>> (example.agg1) >>>> >>>> ### Building my object (vector of 2 names - in reality, many more): >>>> myvars<-c("value1","value2") >>>> example.agg1<-aggregate(cbind(myvars)~group+mydate,sum,data=example) >>>> ### does not work >>>> >>>> >>>> -- >>>> Dimitri Liakhovitski >>>> Ninah Consulting >>>> www.ninah.com >>>> >>>> ______________________________________________ >>>> 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. >>> >>> David Winsemius, MD >>> West Hartford, CT >>> >>> >> >> >> >> -- >> Dimitri Liakhovitski >> Ninah Consulting >> www.ninah.com > > David Winsemius, MD > West Hartford, CT > > -- Dimitri Liakhovitski Ninah Consulting www.ninah.com ______________________________________________ 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.