百分比秩通常由以下公式定义:
百分比秩=(L/N(*100
L=数据集中低于或等于感兴趣值的值的数目N=的数据点数量
在R中,通常通过计算向量中值的百分位数
Percentile_Rank=rank(vec)/length(vec)*100)
然而,我想使用一个稍微修改过的百分位数的定义,它是由与上面相同的公式定义的,但
L=数据集中严格低于感兴趣值的值的数量
这类似于Excel中的PERCENTIARANK.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