[R] Getting the index of specific quantiles
Matteo Richiardi
matteo.richiardi at gmail.com
Tue Nov 22 18:01:57 CET 2016
Thanks Sarah (and all the others who replied) for your precious
suggestions! Matteo
On 22 November 2016 at 14:18, Sarah Goslee <sarah.goslee at gmail.com> wrote:
> Here's how to get one:
>
> x <- c(9,9,1,3,2,7,6,10,5,6)
>> which.min(abs(x - quantile(x, .25)))
> [1] 4
>
> And here's one of the various ways to get the entire set:
>
>> xq <- quantile(x)
>> sapply(xq, function(y)which.min(abs(x - y)))
> 0% 25% 50% 75% 100%
> 3 4 7 1 8
>
> Sarah
>
> On Tue, Nov 22, 2016 at 7:21 AM, Matteo Richiardi
> <matteo.richiardi at gmail.com> wrote:
>> Dear R-users,
>> a very easy one for you, I guess. I need to extract the indexes of the
>> elements corresponding to different quantiles of a vector. When a
>> quantile is an interpolation between two adjacent values, I need the
>> index of the value which is closer (the lower value - or the higher
>> value for what matters - in case the quantile is exactly half way
>> through).
>>
>> This is an example.
>>
>>> x <- c(9,9,1,3,2,7,6,10,5,6)
>>> quantile(x)
>> 0% 25% 50% 75% 100%
>> 1.0 3.5 6.0 8.5 10.0
>>
>> What I need is a vector 'index' which looks like
>>
>>> index
>> 3 4 7 1 8
>>
>> Many thanks for your help ! Matteo
>>
> --
> Sarah Goslee
> http://www.functionaldiversity.org
More information about the R-help
mailing list