**From:** Spencer Graves (*spencer.graves@pdf.com*)

**Date:** Sun 22 Jun 2003 - 11:02:01 EST

**Next message:**Frank E Harrell Jr: "Re: [R] Using weighted.mean() in aggregate()"**Previous message:**Aleksey Naumov: "[R] Using weighted.mean() in aggregate()"**In reply to:**Aleksey Naumov: "[R] Using weighted.mean() in aggregate()"**Next in thread:**Frank E Harrell Jr: "Re: [R] Using weighted.mean() in aggregate()"**Reply:**Frank E Harrell Jr: "Re: [R] Using weighted.mean() in aggregate()"

Message-id: <3EF50009.4030704@pdf.com>

* > tstdf <- data.frame(Sub =rep(1:2, 2),
*

+ Length=1:4, Slope=11:14)

* > by(tstdf, tstdf$Sub,
*

+ function(x)weighted.mean(x$Slope, x$Length))

tstdf$Sub: 1

[1] 12.5

------------------------------------------------------------

tstdf$Sub: 2

[1] 13.33333

* >
*

Does this answer your question?

hth. spencer graves

Aleksey Naumov wrote:

*> Dear R users, I have a question on using weighted.mean() while aggregating a
*

*> data frame. I have a data frame with columns Sub, Length and Slope:
*

*>
*

*>
*

*>>x[1:5,]
*

*>
*

*> Sub Length Slope
*

*> 1 2 351.547 0.0025284969
*

*> 2 2 343.738 0.0025859390
*

*> 3 1 696.659 0.0015948968
*

*> 4 2 5442.338 0.0026132544
*

*> 5 1 209.483 0.0005304225
*

*>
*

*> and I would like to calculate the weighted.mean of Slope, using Length as
*

*> weights, for each value of Sub. The obvious way:
*

*>
*

*>
*

*>>aggregate(list(Mean.Slope=x$Slope), by=list(Sub=x$Sub), FUN=weighted.mean,
*

*>
*

*> w=x$Length)
*

*>
*

*> does not work. weighted.mean() generates warnings that "longer object length
*

*> is not a multiple of shorter object length in: x * w", from which I conclude
*

*> that weights are not supplied as I intend, instead each subset of Sub, when
*

*> passed to weighted.mean(), receives the whole x$Length as weights, which is
*

*> not correct.
*

*>
*

*> Is there an elegant way to do this, or do I have to have a loop here?
*

*>
*

*> Thank you,
*

*> Aleksey
*

*>
*

______________________________________________

R-help@stat.math.ethz.ch mailing list

https://www.stat.math.ethz.ch/mailman/listinfo/r-help

**Next message:**Frank E Harrell Jr: "Re: [R] Using weighted.mean() in aggregate()"**Previous message:**Aleksey Naumov: "[R] Using weighted.mean() in aggregate()"**In reply to:**Aleksey Naumov: "[R] Using weighted.mean() in aggregate()"**Next in thread:**Frank E Harrell Jr: "Re: [R] Using weighted.mean() in aggregate()"**Reply:**Frank E Harrell Jr: "Re: [R] Using weighted.mean() in aggregate()"

*
This archive was generated by hypermail 2.1.3
: Tue 01 Jul 2003 - 09:12:02 EST
*