Skip to content

bind mean to a df

3 messages · Geoffrey Smith, Joshua Wiley, Baptiste Auguie

#
Hi Geoffrey,

Here is one option (data named dfrm instead of data because data() is
a function too):

## Data
dfrm <- data.frame(
  name = c('Frank','Frank','Frank','Tony','Tony','Tony','Ed','Ed','Ed'),
  year = c(2004,2005,2006,2004,2005,2006,2004,2005,2006),
  sale = c(56,45,55,65,68,70,45,67,23))
## Using with() to avoid typing names and ave() to do the work
dfrm$mean <- with(dfrm, ave(x = sale, name, FUN = mean))
## look at the results
dfrm

Cheers,

Josh
On Mon, Apr 11, 2011 at 8:46 PM, Geoffrey Smith <gps at asu.edu> wrote:

  
    
#
Hi,

You could try,

library(plyr)

ddply(data, .(name), transform, mean=mean(sale))
ddply(data, .(name), summarize, mean=mean(sale))

HTH,

baptiste
On 12 April 2011 15:46, Geoffrey Smith <gps at asu.edu> wrote: