After you fix your data frame and if you don't using 2 packages, you might try something like:
lib(plyr) #for 'by' processing lib(Hmisc) # for its wtd.mean function d=data.frame(x=c(15,12,3,10,10),g=c(1,1,2,2,3),w=c(2,1,5,2,5)) ; d ddply(d,~g,function(df) wtd.mean(df$x,df$w)) milton ruser wrote: > > try your first "reproducible line" first :-) > > > > On Thu, Jul 23, 2009 at 5:18 PM, Alexis Maluendas > <avmaluend...@gmail.com>wrote: > >> Hi R experts, >> >> I need know how calculate a weighted mean by group in a data frame. I >> have >> tried with aggragate() function: >> >> data.frame(x=c(15,12,3,10,10),g=c(1,1,1,2,2,3,3),w=c(2,3,1,5,5,2,5)) -> d >> aggregate(d$x,by=list(d$g),weighted.mean,w=d$w) >> >> Generating the following error: >> >> Error en FUN(X[[1L]], ...) : 'x' and 'w' must have the same length >> >> Thanks in advance >> >> [[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<http://www.r-project.org/posting-guide.html> >> and provide commented, minimal, self-contained, reproducible code. >> > > [[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. > > -- View this message in context: http://www.nabble.com/Calculate-weighted-mean-for-each-group-tp24634873p24635837.html Sent from the R help mailing list archive at Nabble.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.