python - 频率值的 R 分位数

标签 python r quantile

我想获取频率值的分位数。 例如,假设我有如下数据:

length frequency
1      13    # There are 13 length 1 items.
2      20    # There are 20 length 2 items.
8      17
10     25
...
[10000+ more entries in file]

所以我想获取某些值的分位数,例如 0.05、0.10、0.50、0.90、0.95、0.99。另外,我想获得一定长度的排名。 我如何在 R 或 Python 上做到这一点?

最佳答案

使用dplyr,首先创建一个具有累积比例的列:

library(dplyr)
dta1<- dta %>% arrange(length) %>%
      mutate(quartile = cumsum(frequency / sum(frequency)))

现在我们可以简单地找到每个大于所需四分位数的第一个(在本例中为 0.5):

dta %>% filter(quartile > 0.5) %>%
        slice(1)

注意这个四分位数查找器特别愚蠢,由你来修复平局等。

关于python - 频率值的 R 分位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32000434/

相关文章:

python - 如何将 z3py 表达式转换为 smtlib 2 格式

python getopt 仅长选项

python - 从 SQLAlchemy KeyedTuple 获取某些字段的更好方法

r - 创建连续值的组名

r - 如何将 ggplot2 中的折线图和条形图与一个分组变量相结合?

r - 如何从R中的列表中提取元素及其索引

r - 如何找到数字落在哪个分位数箱中

python - 查找仅由 2 或 3 组成的第 n 个数字

r - ggplot2如何在geom_bar图中创建与分位数相对应的垂直线

Pandas - 使用分位数获取图表上的值