Unix 列的直方图频率计数
我有一组数据(在800000行的范围内),分为三列(经度、纬度和地震震级),没有以任何方式排序。下面是一个小例子Unix 列的直方图频率计数,unix,awk,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
-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),但我不确定如何创建震级频率
我知道为了创建直方图,我需要识别唯一的值,并在列中按升序设置它们。我相信我可以运行一个for命令,每个值都有一个count函数。。。但是我需要一点帮助
谢谢你能提供的任何帮助
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
您只需要为最后一个字段保留一个计数器:
{count[$3]+}