I can successfully get a simple average of a given vector within the levels of factors, but, trying to move on to the next stage of weighing observations, I cannot get it to work. It works:
> tapply(exp.f,part.f.p.d,mean)
1 2 3 4 5 6 7 8 9 10
0.8535996 1.1256058 0.6968142 1.4346451 0.8136110 1.2006801 1.6112160 1.9168835 1.5135006 3.0312460
But this is not so:
> tapply(exp.f,part.f.p.d,weighted.mean,b.pct)
Error in weighted.mean.default(X[[1L]], ...) :
'x' and 'w' must have the same length
>
In the code below, I am trying to find the weighted average value of exp.f within the levels of the part.fpd factor, weighted by the observations inside b.pct, which are at each level.
b.exp <- tapply(exp.f,part.f.p.d,weighted.mean,b.pct)
Error in weighted.mean.default(X[[1L]], ...) :
'x' and 'w' must have the same length
I think I should supply the wrong syntax, since all three of these vectors are the same length:
> length(b.pct)
[1] 978
> length(exp.f)
[1] 978
> length(part.f.p.d)
[1] 978
What is the right way to do this? Thank you in advance.
source
share