gpt4 book ai didi

linux - 计算 1kb 窗口的平均值

转载 作者:太空宇宙 更新时间:2023-11-04 10:37:53 25 4
gpt4 key购买 nike

我的文件如下所示:

18  1600014 +   CAA 0   3
18 1600017 - CTT 0 1
18 1600019 - CTC 0 1
18 1600020 + CAT 0 3
18 1600031 - CAA 0 1
18 1600035 - CAT 0 1
...

我正在尝试计算涵盖第 2 列 1000 个范围的窗口中第 6 列的平均值。因此从 1600001-1601000、1601001-1602000 等。我的值从 1600000-1700000 变化。有什么办法可以一步到位吗?我最初的想法是使用 grep 对这些值进行排序,但这需要许多不同的命令。我知道您可以使用 awk 计算平均值,但是您可以在每个窗口上重复一遍吗?

期望输出是这样的:

1600001-1601000    3.215
1601001-1602000 3.141
1602001-1603000 3.542

最佳答案

你可以使用 GNU awk 来收集计数和总和,如果我理解你的问题是正确的,你可能需要这样的东西:

BEGIN { mod = 1000 
PROCINFO["sorted_in"] = "@ind_num_asc"
}

{
k= ($2 - ( $2 % mod ) ) / mod
sum[ k ]+= $6
cnt[ k ]++
}

END {
for( k in sum ) printf( "%d-%d\t%6.3f\n", k*mod +1, (k+1)*mod, sum[k] / cnt [k])
}

关于linux - 计算 1kb 窗口的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36556282/

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