Luc*_*hik 2 json average median jq
如何使用 jq 计算数组的中位数 (P50)?jq手册描述了如何计算平均值,但我想得到中位数。
算法:给定一个数字列表,对其进行排序。如果条目数为奇数,则选择中间的条目。如果有偶数个条目,则计算中间两个的平均值。
例子:
echo '[1,5,9,3]' | jq <ANSWER> # should output 4, since it's the mean of 3 and 5
echo '[1,9,2]' | jq <ANSWER> # should output 2, since it's the middle element
echo '[]' | jq <ANSWER> # undefined
Run Code Online (Sandbox Code Playgroud)
回答:
sort |
if length == 0 then null
elif length % 2 == 0 then (.[length/2] + .[length/2-1])/2
else .[length/2|floor] end
Run Code Online (Sandbox Code Playgroud)
这是指定算法的直接实现。
| 归档时间: |
|
| 查看次数: |
694 次 |
| 最近记录: |