Replace
   lst <- paste('dat$', grp, sep='', collapse =',')
   aggregate(dat$x, list(lst), mean)
with
   aggregate(dat$x, dat[grp], mean)
The 'by' argument to aggregate should be a list
and data.frames (like dat and dat[grp]) are lists.


Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
> Behalf
> Of Xianming Wei
> Sent: Thursday, August 30, 2012 7:37 PM
> To: r-help@r-project.org
> Subject: [R] dynamic list in aggregate()
> 
> Hi all,
> 
> How can I have a dynamic list for different combinations of grouping factors 
> in the
> following example? Thanks.
> 
> dat <- data.frame(x=rnorm(100),
>                   a=sample(letters[1:5], replace = T),
>                   b=sample(letters[1:5], replace = T),
>                   c=sample(letters[1:5], replace = T),
>                   d=sample(letters[1:5], replace = T))
> 
> ## define grouping factors
> grp <- c('a','d') # or any combination among a, b, c and d
> ## something like this for the list
> lst <- paste('dat$', grp, sep='', collapse =',')
> ## aggregate on the defined list
> aggregate(dat$x, list(lst), mean)
> 
> Thanks.
> 
> Regards,
> Xianming
> 
> 
> -------------------- Internet e-Mail Disclaimer --------------------
> 
> PRIVILEGED - PRIVATE AND CONFIDENTIAL: This email and any files transmitted 
> with it
> are intended solely for the use of the addressee(s) and may contain 
> information, which is
> confidential or privileged. If you are not the intended recipient, be aware 
> that any
> disclosure, copying, distribution, or use of the contents of this information 
> is prohibited.
> In such case, you should destroy this message and kindly notify the sender by 
> reply e-
> mail. The views and opinions expressed in this e-mail are those of the sender 
> and do not
> necessarily reflect the views of the company.
> 
> VIRUSES:  Email transmission cannot be guaranteed to be secure or error free, 
> as
> information may be intercepted, corrupted, lost, destroyed, arrive late or 
> incomplete or
> contain viruses. This email and any files attached to it have been checked 
> with virus
> detection software before transmission. You should nonetheless carry out your 
> own virus
> check before opening any attachment. BSES Limited does not represent or 
> warrant that
> files attached to this email are free from computer viruses or other defects 
> and accepts
> no liability for any loss or damage that may be caused by software viruses
> 
>       [[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.

______________________________________________
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