我有一个包含许多列的大数据文件。如果另一列具有特定值,我想获取某些列的平均值。
例如,如果<?php echo nl2br($array[1]['message']); ?>
然后得到$19=9.1
,$24
,$25
,$27
,$28
和{{1} },然后将这些值写入文件
$32
并为$ 19列的其他两个值添加另外两行,例如11.9和13.9,结果:
$35
我看到过一个帖子"awk average part of a column if lines (specific field) match",如果第一列具有一定价值,那么它仅代表一列,但我不知道如何将解决方案扩展到我的问题。
答案 0 :(得分:2)
如果您填写空白,这应该可以工作...
$ awk 'BEGIN {n=split("1.9 11.9 13.9",a)}
{k=$19; c[k]++; m24[k]+=$24; m25[k]+=$25; ...}
END {for(i=1;i<=n;i++) print k=a[i], m24[k]/c[k], m25[k]/c[k], ...}' file
也许还可以处理c[k]=0
条件,例如:
function mean(sum,count) {return (count==0?"NaN":sum/count)}