如何在dolphindb中求向量中某个element在这个向量中的百分位

a = [-1, 2, -3, 1, -2, 3, 0 ]
我想求2.5在a中的百分位,在dolphindb中应该怎么实现?
请先 登录 后评论

3 个回答

chenweijian

可以自定义一个函数,如下所示:

def findPercent(x, ele) {
    return sum(ele>=x) \ x.size()
}

findPercent(a, 2.5)

返回结果:

0.857143
请先 登录 后评论
Polly

可以用 percentileRank 函数进行计算

请先 登录 后评论
谭华

解决方案:

使用percentileRank 函数进行计算

def findPercent(x, ele) {
    return sum(ele>=x) \ x.size()
}
n = 1000000;
a = 1..n
// dolphindb内置函数percentileRank:
timer(10) c = percentileRank(a, 1000)
// 自定义函数
timer(10) d = findPercent(a, 1000)


性能测试:

解决方案                                                           耗时

percentileRank                                             6.792 ms

自定义函数                                                  12.479 ms

请先 登录 后评论