我想获取频率值的分位数。 例如,假设我有如下数据:
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/