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

长度频率
1 13#有13个length 1项目。
2 20#有20个长度为2的商品。
8 17
10 25
...
[文件中还有10000多个条目]


因此,我想针对某些值(例如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/

10-09 16:49