我想获得一定的行数的平均值,在这种情况下,该数量由第二列平均行
-1 1 22.776109913596883 0.19607208141710716
-1 1 4.2985901827923954 1.0388892840309705
-1 1 4.642271812306717 0.96197712195674756
-1 2 2.8032298255711794 1.5930763994471333
-1 2 2.9358628368936479 1.5211062387604053
-1 2 4.9987168801017106 0.8933811184867273
1 4 2.6211673161014915 1.7037291934441456
1 4 4.483831056393683 0.99596956735821618
1 4 9.7189442154485732 0.4594901646050486
预期产出将是决定给定数目的
-1 1 0.732313
-1 2 1.33585
1 4 1.05306
我已经做了
awk '{sum+=$4} (NR%3)==0 {print $2,$3,sum/3;sum=0;}' test
其工作原理,但我想(在某种程度上)推广(NR%3)==0
awk意识到第二列的价值已经发生了变化,因此意味着它是一个新的平均值,它需要计算。例如,前三行在第二列中的值为1
,因此一旦1
更改为2
,则意味着它是需要计算的新平均值。
这是否有意义?