On 9/18/07, Mihalicza Péter <[EMAIL PROTECTED]> wrote: > Sorry for the confusion, I was not clear enough, so I made a small > example to illustrate: > > >m=data.frame(fac1=rep(c(1,2),3), fac2=c("a","b","b","b","a","b"), > num1=1:6, num2=7:12) > > m$fac1=as.factor(m$fac1) > > m > fac1 fac2 num1 num2 > 1 1 a 1 7 > 2 2 b 2 8 > 3 1 b 3 9 > 4 2 b 4 10 > 5 1 a 5 11 > 6 2 b 6 12 > >#I would like to get the sum of num1 and num2 grouped by c(1,2) and c(a,b) > > ag=aggregate(m, list(m$fac1, m$fac2), sum) > Error in Summary.factor(..., na.rm = na.rm) : > sum not meaningful for factors > > >#I understand, that it is possible to do... > > >ag=aggregate(m[,3:4], list(m$fac1, m$fac2), sum) > > ag > Group.1 Group.2 num1 num2 > 1 1 a 6 18 > 2 1 b 3 9 > 3 2 b 12 30 > > but I do not understand why aggragate tries to sum fac1 and fac2 since > they are grouping variables that need not, and must not be summed. To my > understanding the aggregate help text also does not speak about omitting > factor variables from the data frame. > > My question is whether I miss something, or this is how aggregate works. > If the latter, than what is the reason for it. > > Thanks, and sorry again! > > Yours, > Peter Mihalicza > >
Aggregate does not assume that the grouping variables and the object to aggregate are related to each other. Thus, supply *exactly* the object which you want to aggregate over, in your case m[,c("num1","num2")], as X. The reason for this I leave to others to explain. /Gustaf -- Gustaf Rydevik, M.Sci. tel: +46(0)703 051 451 address:Essingetorget 40,112 66 Stockholm, SE skype:gustaf_rydevik ______________________________________________ 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.