[R] get the percentage rank of a value based on an empirical data vector
R. Michael Weylandt <michael.weylandt@gmail.com>
michael.weylandt at gmail.com
Wed Jan 11 16:07:43 CET 2012
If performance is an issue, I think mean(x < y) will be as quick as it can be done in R alone (you could do it in C in a single pass if needed which might be a good first exercise in using compiled code)
Michael
On Jan 11, 2012, at 8:58 AM, David Winsemius <dwinsemius at comcast.net> wrote:
>
> 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
>
> ______________________________________________
> R-help at 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.
More information about the R-help
mailing list