计算百分位数的条件数组
Posted
技术标签:
【中文标题】计算百分位数的条件数组【英文标题】:Conditional array to calculate percentiles 【发布时间】:2016-03-11 13:03:08 【问题描述】:我有一些数据如下:
val crit perc
0.415605498 1 perc1
0.475426007 1 perc1
0.418621318 1 perc1
0.51608229 1 perc1
0.452307882 1 perc1
0.496691416 1 perc1
0.402689126 1 perc1
0.494381345 1 perc1
0.532406777 1 perc1
0.839352016 2 perc2
0.618221702 2 perc2
0.83947033 2 perc2
0.621734007 2 perc2
0.548656662 2 perc2
0.711919796 2 perc2
0.758178085 2 perc2
0.820954467 2 perc2
0.478645786 2 perc2
0.848323655 2 perc2
0.844986383 2 perc2
0.418155292 2 perc2
1.182637063 3 perc3
1.248876472 3 perc3
1.218368809 3 perc3
0.664934398 3 perc3
0.951692853 3 perc3
0.848111264 3 perc3
0.58887439 3 perc3
0.931530464 3 perc3
0.676314176 3 perc3
1.270797783 3 perc3
我正在尝试使用 percentile.inc() 函数来计算 crit 的每个级别的第 5 个百分位数(因为我已将变量 var 分类为类)。
我尝试使用=PERCENTILE.INC(IF($B$2:$B$32=1,$A$2:$A$32,IF($B$2:$B$32=2,$A$2:$A$32,IF($B$2:$B$32=3,$A$2:$A$32,""))),0.05)
,但它所做的只是计算整个数组的百分位数,而不是返回条件百分位数。
欢迎任何帮助(仅供参考,我必须在 26000 行和 20 个级别的 crit 上执行此操作)!
【问题讨论】:
您正试图从一个公式中得到三个答案。我建议您需要在三个单元格中使用相同的(修改后的)公式来分离三个暴击值的结果。一直在为您尝试修改后的公式,将到达那里。顺便说一句,您的最后一个参数 0.05 = 第 5 个百分位,而不是第 0.05 个百分位。 感谢有人已经解决了它! 【参考方案1】:这对我有用。我有以下布局:
我在G3中使用了以下公式:
=PERCENTILE.INC(IF(B:B=F3,A:A),0.05)
这是一个数组公式,所以输入Ctrl
+Shift
+Enter
。
根据需要向下拖动。
【讨论】:
它似乎有效,但我应该指定我希望它给我一个表格形状的结果......与每一行关联的值。有什么聪明的方法吗? 那么在你的 perc 列中,你想要百分位数吗? 没错!可能是小细节,但它会帮助我接下来要做的事情(顺便说一句,你的公式在整个数据集上都能完美运行)。 你可以做的是在 C2 中使用这个公式(假设你有标题)并向下拖动:=PERCENTILE.INC(IF(B:B=B2,A:A),0.05)
是的,A:A 和 B:B 解决方案的处理过程非常疯狂……实际数组更平滑。非常感谢!以上是关于计算百分位数的条件数组的主要内容,如果未能解决你的问题,请参考以下文章
python使用pandas中的groupby函数和agg函数计算每个分组数据的两个分位数(例如百分之10分位数和百分之90分位数)
Pandas .. 分位数函数是不是需要排序数据来计算百分位数?