Hi

Patrick Hausmann <[EMAIL PROTECTED]> napsal dne 15.11.2007 18:59:06:

> Hello Petr,
> 
> one question solved, the next is standing in front of me... If you 
> have a minute  to look .... great!
> 
> > x
>    V1 V2        F1
> 1  A  2 0.1552277
> 2  A  3 0.1552277
> 3  A  4 0.1552277
> 4  B  3 0.8447723
> 5  B  2 0.8447723
> 6  C  6 0.2500000
> 7  C  2 0.2500000
> 8  C  6 0.2500000
> 
> Getting the mean is no problem ;-)
> > ave(x$V2, x$V1, FUN = mean)
> [1] 3.000000 3.000000 3.000000 2.500000 2.500000 4.666667 4.666667 
4.666667
> 
> But I don't know, how to use the "quantile"-function with the "ave", 
> using the values form x$F1? This doesn't work:
> 
> ave(x$V2, x$V1, FUN = function(x) quantile(x, prob = x$F1))

A little of surgery.

> ave(x$V2, x$V1, FUN = function(x) quantile(x, prob = x$F1))
Error in x[i] <- value[[j]] : nothing to replace with

> ave(x$V2, x$V1, FUN = function(x) quantile(x, prob = .8))
[1] 3.6 3.6 3.6 2.8 2.8 6.0 6.0 6.0

> quantile(x$V2, prob = .8)
80% 
5.2 

> quantile(x$V2, prob = x$F1)
15.52277% 15.52277% 15.52277% 84.47723% 84.47723%       25%       25%  25% 

 2.000000  2.000000  2.000000  5.826812  5.826812  2.000000  2.000000 
2.000000 

function in ave needs to evaluate to 1 value and you just want to get 
several values based on x$F1.

Here comes your turn, because you need to know what you want either a 
quantile for one value or a quantiles for several values.
If later you can not use "ave" but you need to use "by", "tapply", or 
"aggregate" and reformat the output according your intentions.

However you can do another construction and use indexed group averaging 
like

> ave(seq_along(x$V2), x$V1, FUN = function(s) quantile(x$V2[s], prob = 
x$F1[s]))
[1] 2.310455 2.310455 2.310455 2.844772 2.844772 4.000000 4.000000 
4.000000

Regards
Petr


> 
> Thank you for any hint!!
> 
> Best
> Patrick
> 
>

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to