【问题标题】:Interval Query for a Percent Distribution of Numbers数字百分比分布的区间查询
【发布时间】:2020-12-09 13:00:35
【问题描述】:

假设我们有以下一系列值

10,10,10,10,10,10,14,14,14,22,22,28

根据直方图,我们在四个 bin 中从给定系列中获得以下数量的值,如下所示:

9:[10,15)
0:[15,20)
2:[20,25)
1:[25,30)

显然 9/12(75%) 的价值位于区间 [10,15); 11/12(91%) 的值位于区间 [10,25) 中。我有兴趣想出一个函数,它接受一个系列和百分比,并返回这些百分比所在的区间范围。

例如:query(Series=c(10,10,10,10,10,10,14,14,14,22,22,28), Pct=91) 应该返回 c(10,25)。我对 R 有点陌生,如果有人可以为我指出这个任务的内置函数或为我提供一个实现,将会很有帮助。 提前致谢

【问题讨论】:

    标签: r data-science histogram distribution


    【解决方案1】:
    quantile(c(10,10,10,10,10,10,14,14,14,22,22,28),c(0,0.91))
    

    这并不能完全产生您想要的输出,您要么找到了 22 到 28 之间的中点,要么将其四舍五入到合适的桶大小以进行绘图。这是对这两个点之间的分位数进行线性插值,即 22 是第 10/11 个分位数 (90.9090...%),28 是 100%。 91% 在 22.06 发布。

    【讨论】:

    • 也许可以简要解释一下为什么分位数函数会解决 OP 的问题?
    • 当然,我以为OP只是想指出正确的方向,但最好还是多说几句...
    【解决方案2】:

    如果您的分箱宽度为5,也许这将接近您的目标(类似于@pseudospin 的答案)

    > 5*ceiling(quantile(c(10,10,10,10,10,10,14,14,14,22,22,28),c(0,0.91))/5)
     0% 91%
     10  25
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      相关资源
      最近更新 更多