Мне было интересно, как я мог бы преобразовать исключительную функцию ранга Excel в R. Я нашел метод здесь , который выглядит так:
true_df <- data.frame(some_column= c(24516,7174,13594,33838,40000))
percentilerank<-function(x){
rx<-rle(sort(x))
smaller<-cumsum(c(0, rx$lengths))[seq(length(rx$lengths))]
larger<-rev(cumsum(c(0, rev(rx$lengths))))[-1]
rxpr<-smaller/(smaller+larger)
rxpr[match(x, rx$values)]
}
dfr<-percentilerank(true_df$some_column)
#output which is similar to =PERCENTRANK.INC and NOT =PERCENTRANK.EXC
#[1] 0.50 0.00 0.25 0.75 1.00
Но это для =PERCENTRANK.INC
эквивалент в R. Согласно всплывающему окну информации в Excel, =PERCENTRANK.INC
принимает (массив, значение x ранга, [значение-необязательное]) и возвращает процентный ранг, включая первое (0%) и последнее (100%) значения в массиве.
=PERCENTRANK.EXC
аналогичен своему аналогу, но возвращает процентный ранг, исключая первое и последнее значения в массиве. Значение не 0% или 100%.
Вот небольшой пример использования Excel, чтобы показать разницу:
Когда я применяю вышеупомянутую функцию R, она дает мне вывод аналогично PERCENTRANK.INC($A$32:$A$36,A32)
столбцу. Как мне этого добиться? Я новичок в Р.