列的直方图频率计数

时间:2015-04-24 19:04:58

标签: unix awk

我有一组数据(在800000行的区域内),有三列(经度,纬度和地震幅度),没有以任何方式排序。下面的一个小例子......

-118.074 36.930 2.97
-118.005 36.898 2.61
-116.526 36.621 2.72
-116.488 36.650 2.68
-117.675 36.820 2.00
-117.963 36.514 1.30
-118.090 36.757 1.94
-117.651 36.518 1.40
-116.434 36.506 1.90
-117.914 36.531 2.10
-118.235 36.882 2.00

我需要创建地震震级的直方图(范围为1.0到7.0),但我不确定如何创建振幅的频率。

据我所知,为了创建直方图,我需要识别唯一值,并在列中按升序设置它们。我相信我可以为每个值运行带有count函数的for命令......但是我需要一些帮助!

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:0)

awk '{counts[$3]++} END {for (c in counts) print c, counts[c]}' inputs.txt | sort -nk2

将按升序显示独特的幅度及其计数:

1.30 1
1.40 1
1.90 1
1.94 1
2.10 1
2.61 1
2.68 1
2.72 1
2.97 1
2.00 2