I didn't know about ave(). What about this, though:
dat <- data.frame(score = rnorm(100), group = gl(10,10))
group.score <- with(dat, tapply(score, group, mean))
dat$group.score <- group.score[as.character(dat$group)]
Harold
> -----Original Message-----
> From: pd at pubhealth.ku.dk [mailto:pd at pubhealth.ku.dk] On
> Behalf Of Peter Dalgaard
> Sent: Tuesday, May 30, 2006 1:09 PM
> To: Doran, Harold
> Cc: r user; rhelp
> Subject: Re: [R] average by group...
>
> "Doran, Harold" <HDoran at air.org> writes:
>
> > ?tapply
>
> Nope.
>
> ?ave
>
> >
> > > -----Original Message-----
> > > From: r-help-bounces at stat.math.ethz.ch
> > > [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of r user
> > > Sent: Tuesday, May 30, 2006 12:27 PM
> > > To: rhelp
> > > Subject: [R] average by group...
> > >
> > > I have a dataframe with 700,000 rows and 2 vectors
> > > (columns): "group" and "score".
> > >
> > > I wish to calculate a third vector of length 700000:
> ^^^^^^^^^^^^^^^^
>
> > > the average score by group. Even though the avarge value will
> > > repeat, I wish to return the average for that particular
> group for
> > > each row.
> > >
> > > (I know I can do this by calculating each group's average
> and then
> > > using the merge command, but as my calculations get more
> complex and
> > > my data set gets larger, the merge command seems to be
> fairly slow.)
> > >
> > > ______________________________________________
> > > R-help at stat.math.ethz.ch mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > PLEASE do read the posting guide!
> > > http://www.R-project.org/posting-guide.html
> > >
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide!
> > http://www.R-project.org/posting-guide.html
> >
>
> --
> O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B
> c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
> (*) \(*) -- University of Copenhagen Denmark Ph:
> (+45) 35327918
> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX:
> (+45) 35327907
>