Рассчитать среднее значение для каждого столбца, игнорируя отсутствующие данные с помощью awk
У меня есть большая таблица данных, разделенная табуляцией, с тысячами строк и десятками столбцов, и в ней отсутствуют данные, помеченные как «na». Например,
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
Я хотел бы рассчитать среднее значение для каждого столбца, но убедившись, что пропущенные данные игнорируются при расчете. Например, среднее значение столбца 1 должно быть 0,97. Я считаю, что я мог бы использоватьawk
но я не уверен, как построить команду, чтобы сделать это для всех столбцов и учесть пропущенные данные.
Все, что я знаю, как это вычислить среднее значение для одного столбца, но он обрабатывает отсутствующие данные как 0, а не исключает их из расчета.
awk '{sum+=$1} END {print sum/NR}' filename