Here are a couple of approaches: > dftest<-data.frame(x=1:12, y=(1:12)%%4, z=(1:12)%%2) > x_test=c("x","y") > aggregate( dftest[,x_test], dftest['z'], FUN=mean ) z x y 1 0 7 1 2 1 6 2 > > ### Or > > tmp.f <- as.formula( paste( 'cbind(', + paste( x_test, collapse=',' ), + ') ~ z' ) ) > aggregate( tmp.f, data=dftest, FUN=mean ) z x y 1 0 7 1 2 1 6 2
The first just uses x_test to subset the data frame and sends the constructed subset to aggregate. The second constructs the formula from the strings and passes the formula to aggregate. On Thu, May 23, 2013 at 1:05 AM, jpm miao <miao...@gmail.com> wrote: > Hi, > From time to time I need to do the aggregation. To illustrate, I present > a toy example as below. In this example, the task is to aggregate x and y > by z with the function mean. > Could I call the aggregation function with x_test, where > x_test=c("x","y")? Thanks > > Miao > > > > dftest<-data.frame(x=1:12, y=(1:12)%%4, z=(1:12)%%2) > > dftest > x y z > 1 1 1 1 > 2 2 2 0 > 3 3 3 1 > 4 4 0 0 > 5 5 1 1 > 6 6 2 0 > 7 7 3 1 > 8 8 0 0 > 9 9 1 1 > 10 10 2 0 > 11 11 3 1 > 12 12 0 0 > > aggregate(cbind(x,y)~z, data=dftest, FUN=mean) > z x y > 1 0 7 1 > 2 1 6 2 > > x_test=c("x","y") > > aggregate(cbind(x_test)~z, data=dftest, FUN=mean) > Error in model.frame.default(formula = cbind(x_test) ~ z, data = dftest) : > variable lengths differ (found for 'z') > a1aggregate(cbind(factor(x_test))~z, data=dftest, FUN=mean) > Error in model.frame.default(formula = cbind(factor(x_test)) ~ z, data = > dftest) : > variable lengths differ (found for 'z') > > aggregate(factor(x_test)~z, data=dftest, FUN=mean) > Error in model.frame.default(formula = factor(x_test) ~ z, data = dftest) : > variable lengths differ (found for 'z') > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. > -- Gregory (Greg) L. Snow Ph.D. 538...@gmail.com [[alternative HTML version deleted]] ______________________________________________ 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.