R: [R] weighted.mean and tapply (again)

Guazzetti Stefano Stefano.Guazzetti at ausl.re.it
Thu May 26 08:35:57 CEST 2005

```what about using "mapply"?

splitted.value<-with(x.1, split(VALUE, GROUP))
splitted.freq<-with(x.1, split(FREQUENCY, GROUP))
mapply(weighted.mean, splitted.value, w=splitted.freq)

Stefano

>-----Messaggio originale-----
>Da: r-help-bounces at stat.math.ethz.ch
>[mailto:r-help-bounces at stat.math.ethz.ch]Per conto di
>james.holtman at convergys.com
>Inviato: mercoledì 25 maggio 2005 17.57
>A: Dan Bolser
>Cc: R mailing list; r-help-bounces at stat.math.ethz.ch
>Oggetto: Re: [R] weighted.mean and tapply (again)
>
>
>
>
>
>
>> x.1
>   GROUP VALUE FREQUENCY
>1      2     2        78
>2      2     3        40
>3      2     4        16
>4      2     5         3
>5      2     6         1
>6      2     8         1
>7      3     3        19
>8      3     4        10
>9      3     5        19
>10     3     6         4
>> by(x.1, x.1\$GROUP, function(x) weighted.mean(x\$VALUE,
>x\$FREQUENCY))
>x.1\$GROUP: 2
>[1] 2.654676
>------------------------------------------------------------
>---------------
>x.1\$GROUP: 3
>[1] 4.153846
>>
>
>Jim
>__________________________________________________________
>James Holtman        "What is the problem you are trying to solve?"
>Executive Technical Consultant  --  Office of Technology, Convergys
>james.holtman at convergys.com
>+1 (513) 723-2929
>
>
>
>
>
>                      Dan Bolser
>
>
>                      <dmb at mrc-dunn.cam.ac.        To:
> R mailing list <r-help at stat.math.ethz.ch>
>
>                      uk>                          cc:
>
>
>                      Sent by:                     Subject:
> [R] weighted.mean and tapply (again)
>
>                      r-help-bounces at stat.m
>
>
>                      ath.ethz.ch
>
>
>
>
>
>
>
>
>                      05/25/2005 11:33
>
>
>
>
>
>
>
>
>
>
>"weighted.mean", but I didn't understand either the problem
>(data) or the
>solution provided.
>
>Here is my question ...
>
>> dat[1:10,]
>  GROUP  VALUE FREQUENCY
>1     2      2        78
>2     2      3        40
>3     2      4        16
>4     2      5         3
>5     2      6         1
>6     2      8         1
>7     3      3        19
>8     3      4        10
>9     3      5        19
>1     3      6         4
>
>
>For each GROUP, I would like to calculate the weighted.mean
>of VALUE using
>the FREQUENCY as the weight, so for the snippet of data
>shown that would
>be...
>
>group.2 <- weighted.mean(c(2,3,4,5,6,8),c(78,40,16,3,1,1))
>group.3 <- weighted.mean(c(3,4,5,6),    c(19,10,19,4))
>
>> cbind(rbind(2,3),rbind(group.2,group.3))
>        [,1]     [,2]
>group.2    2 2.654676
>group.3    3 4.153846
>
>I would like to use tapply to automatically do this across the whole
>dataset (dat) - which includes lots of other distinct
>grouping factors,
>however, like I said, I couldn't understand (and therefore
>apply to my
>data) any of the other solutions I found, so any help here would be
>greatly appreciated!
>
>All the best,
>Dan.
>
>______________________________________________
>R-help at stat.math.ethz.ch mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help
>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