[R] tapply and weighted means

Frank E Harrell Jr f.harrell at vanderbilt.edu
Thu Jan 12 16:20:30 CET 2006

```Dimitris Rizopoulos wrote:
> you need also to split the 'w' column, for each level of 'x'; you
> could use:
>
> lapply(split(truc, truc\$x), function(z) weighted.mean(z\$y, z\$w))
>
>
> I hope it helps.
>
> Best,
> Dimitris

Or:
library(Hmisc)
?wtd.mean
The help file has a built-in example of this.
Frank

>
> ----
> Dimitris Rizopoulos
> Ph.D. Student
> Biostatistical Centre
> School of Public Health
> Catholic University of Leuven
>
> Address: Kapucijnenvoer 35, Leuven, Belgium
> Tel: +32/(0)16/336899
> Fax: +32/(0)16/337015
> Web: http://www.med.kuleuven.be/biostat/
>      http://www.student.kuleuven.be/~m0390867/dimitris.htm
>
>
>
> ----- Original Message -----
> From: "Florent Bresson" <f_bresson at yahoo.fr>
> To: "R-help" <r-help at stat.math.ethz.ch>
> Sent: Thursday, January 12, 2006 3:44 PM
> Subject: [R] tapply and weighted means
>
>
>
>>I' m trying to compute weighted mean on different
>>groups but it only returns NA. If I use the following
>>data.frame truc:
>>
>>x  y  w
>>1  1  1
>>1  2  2
>>1  3  1
>>1  4  2
>>0  2  1
>>0  3  2
>>0  4  1
>>0  5  1
>>
>>where x is a factor, and then use the command :
>>
>>tapply(truc\$y,list(truc\$x),wtd.mean, weights=truc\$w)
>>
>>I just get NA. What's the problem ? What can I do ?
>>
>>______________________________________________
>>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
>>
>
>
>
> Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help