# [R] Compute quantiles with values and correspondent frequencies

Sean Davis sdavis2 at mail.nih.gov
Fri Mar 3 13:49:40 CET 2006

```How about this:

> x <- rpois(100,4)
> vals <- as.numeric(names(table(x)))
> vals
[1]  0  1  2  3  4  5  6  7  8  9 10
> tx.freq <- as.numeric(table(x))/100
> tx.freq
[1] 0.01 0.07 0.12 0.16 0.27 0.10 0.07 0.07 0.11 0.01 0.01
> quantile(x)
0%  25%  50%  75% 100%
0    3    4    6   10
> quantile.from.freq <- function(vals,freq,quant) {
+ ord <- order(vals)
+ cs <- cumsum(freq[ord])
+ return(vals[max(which(cs<quant))+1])}
> quantile.from.freq(vals,tx.freq,0.5)
[1] 4
> quantile.from.freq(vals,tx.freq,0.25)
[1] 3
> quantile.from.freq(vals,tx.freq,0.75)
[1] 6
> quantile.from.freq(vals,tx.freq,1)
[1] 10

Sean

> Yes, but it works only when you have integer counts for each value.
> When I have only relative frequencies I can't repeat each value a
> non-integer number of times.
> Paolo
>
> ----- Original Message -----
> From: "Roger Bivand" <Roger.Bivand at nhh.no>
> Cc: <r-help at stat.math.ethz.ch>
> Sent: Friday, March 03, 2006 1:18 PM
> Subject: Re: [R] Compute quantiles with values and correspondent frequencies
>
>
>> On Fri, 3 Mar 2006, Paolo Radaelli wrote:
>>
>>> Dear List, quantile(x) function allows to obtain specified quantiles of
>>> a vector of observations x.
>>>
>>> Is there an analogous function to compute quantiles in the case one have
>>> the vector of the observations x and the correspondent vector f of
>>> relative frequencies ?
>>
>> Just use rep():
>>
>> x <- rpois(100, 4) # data
>> quantile(x)
>> tx <- table(x) # frequencies (need to be integer counts)
>> tx
>> v <- as.numeric(names(tx)) # values
>> quantile(rep(v, as.integer(tx)))
>>
>> You have v and tx, so this should work.
>>
>>>
>>> Thank you
>>>
>>>
>>>
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> 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
>>>
>>
>> --
>> Roger Bivand
>> Economic Geography Section, Department of Economics, Norwegian School of
>> Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
>> e-mail: Roger.Bivand at nhh.no
>>
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help