Berechnen Sie den Mittelwert jeder Spalte und ignorieren Sie fehlende Daten mit awk

Ich habe eine große tabulatorgetrennte Datentabelle mit Tausenden von Zeilen und Dutzenden von Spalten und es fehlen Daten, die als "na" markiert sind. Beispielsweise

na  0.93    na  0   na  0.51
1   1   na  1   na  1
1   1   na  0.97    na  1
0.92    1   na  1   0.01    0.34

Ich möchte den Mittelwert jeder Spalte berechnen, stelle jedoch sicher, dass die fehlenden Daten bei der Berechnung ignoriert werden. Beispielsweise sollte der Mittelwert von Spalte 1 0,97 betragen. Ich glaube, ich könnte @ verwendawk aber ich bin nicht sicher, wie ich den Befehl erstellen soll, um dies für alle Spalten zu tun und fehlende Daten zu berücksichtigen.

Ich weiß nur, wie man den Mittelwert einer einzelnen Spalte berechnet, aber die fehlenden Daten werden als 0 behandelt, anstatt sie aus der Berechnung herauszulassen.

awk '{sum+=$1} END {print sum/NR}' filename

Antworten auf die Frage(4)

Ihre Antwort auf die Frage