R 中的百分位数排名(含)

Percentile rank (inclusive) in R

百分等级通常由以下公式定义:

百分位排名 = (L/N)*100

L=数据集中小于或等于感兴趣值的值数 N=数据点数

在 R 中,通常通过

计算向量中值的百分位数排名
Percentile_Rank=rank(vec)/length(vec)*100) 

不过,我想使用一个稍微修改过的百分位排名定义,它的定义与上面的公式相同,但是

L = 数据集中严格低于感兴趣值的值数

这类似于Excel中的PERCENTILERANK.EXC函数。

R 中是否内置了一个函数来计算这个?不然怎么办?

这是您要找的吗?

y = 1:10

# traditional percentile
rank(y)/length(y) * 100
#  [1]  10  20  30  40  50  60  70  80  90 100 

# percentile considering those values preceding current value
vapply(y, function(x){
  sum(y < x)/length(y) * 100
}, FUN.VALUE = numeric(1L))
#  [1]  0 10 20 30 40 50 60 70 80 90