[R] get the percentage rank of a value based on an empirical data vector

David Winsemius dwinsemius at comcast.net
Wed Jan 11 14:58:05 CET 2012


On Jan 11, 2012, at 8:12 AM, Martin Batholdy wrote:

> Hi,
>
> I have a vector with values:
>
> x <- rnorm(1000, 5, 2)
>
>
> and one single value:
> y <- 6.2
>
> now I would like to know the percent rank of y based on the  
> 'population'-vector x.
> Is there a convenient function that calculates the percent rank of a  
> y for the given vector x?

Two options :
1) sort x and use findInterval, divide the index by length(x) and  
multiply by 100
(It can all be done as a one-liner.)

2) I generally "reach for" the `ecdf` "function making machine" when I  
see sample quantile problems and see if I can cast the problem in  
terms for which it applies.

For my random draw I get:
 > findInterval(6.2, sort(x))
[1] 704
 > xecdf <- ecdf(x)
 > xecdf(6.2)
[1] 0.704

-- 
David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list