gpt4 book ai didi

r - 在 R 中创建等同于 Excel 的 =PERCENTRANK.EXC 函数?

转载 作者:行者123 更新时间:2023-12-03 19:05:27 25 4
gpt4 key购买 nike

我想知道如何在 R 中转换 Excel 的百分位数排他功能。我找到了 a technique here是这样的:

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

但它适用于 R 中的 =PERCENTRANK.INC 等价物。根据 Excel 中的信息弹出窗口,=PERCENTRANK.INC 需要(数组,等级的 x 值, [significance-optional]) 并返回包含数组中第一个 (0%) 和最后一个 (100%) 值的百分比排名。

=PERCENTRANK.EXC 与其对应项类似,但它返回的百分比排名不包括数组中的第一个和最后一个值。意思不是 0% 或 100%。

这是一个使用 Excel 显示差异的小示例:

enter image description here

当我应用上面的 R 函数时,它给我的输出类似于 PERCENTRANK.INC($A$32:$A$36,A32) 列。我怎样才能做到这一点?我是 R 的新手。

最佳答案

使用 dplyr:

library(dplyr)

# inclusive
percent_rank(x)

# exclusive
percent_rank(c(-Inf, Inf, x))[-(1:2)]

关于r - 在 R 中创建等同于 Excel 的 =PERCENTRANK.EXC 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60793656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com