gpt4 book ai didi

bash - awk 列的中位数

转载 作者:行者123 更新时间:2023-11-29 08:47:23 26 4
gpt4 key购买 nike

如何使用 AWK 计算一列数值数据的中位数?

我能想到一个简单的算法,但我似乎无法对其进行编程:

我目前拥有的是:

sort | awk 'END{print NR}' 

这给出了列中元素的数量。我想用它来打印某一行 (NR/2)。如果 NR/2 不是整数,则我四舍五​​入到最接近的整数,即中位数,否则我取 (NR/2)+1 的平均值和 (NR/2)-1

最佳答案

使用 awk,您必须将值存储在数组中并在最后计算中位数,假设我们查看第一列:

sort -n file | awk ' { a[i++]=$1; } END { print a[int(i/2)]; }'

当然,对于真正的中位数计算,请按照问题中的描述进行舍入:

sort -n file | awk ' { a[i++]=$1; }
END { x=int((i+1)/2); if (x < (i+1)/2) print (a[x-1]+a[x])/2; else print a[x-1]; }'

关于bash - awk 列的中位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6166375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com