我有一个制表符分隔的文件,比如
Name S.No Points First
Jack 2 98 F
Jones 6 25
Mike 8 11
Jasmine 5 7
Gareth 1 85 F
Simon 4 76
Mark 11 12
Steve 17 8
Clarke 3 7
我想计算前3个点的收入者和第一个点的收入者之间的差异,用F线表示,和组中其他两个的平均值除以组中的总点数。例如,琼斯和迈克在第一个案件,西蒙和马克在第二个案件。我希望我的输出是
^{pr2}$计算百分比的公式在输出的最后一列是,例如在琼斯的情况下,情况1是
(Jack - Jones)*100/(Jack + Jones + Mike + Jasmine)
(98-25)*100/(98+25+11+7)= 51.77
我可以使用
awk '$NF~/E/{c=3;next}c-->0'
但是,计算差额和百分比有点麻烦,因为我必须先求分母的和,然后再去掉前三行。在
以下是awk解决方案:
其中
^{pr2}$c.awk
是:为马克得到一个完全不同的号码:
产生:
^{pr2}$参考您的awk命令,似乎源文件已经按组对数据进行了排序。在
结果
^{pr2}$相关问题 更多 >
编程相关推荐