Для файла в одну колонку сумма и среднее считается так:
cat data.dat | awk '{sum +=$1} END {print "Сумма=" sum, "Среднее="sum/NR}'
Если нужно посчитать среднее в каждой строке то:
$cat data1.dat
.530 .539 .601 .613 .618
.493 .532 .599 .634 .591
.405 .436 .530 .536 .537
.430 .424 .524 .542 .515
.482 .530 .528 .550 .550
.473 .535 .540 .554 .546
.527 .562 .611 .598 .607
$cat data1.dat | awk '{sum=0; n=0; for (i=1; i<=NF; i++) {sum +=$i; ++n} print sum/n}' 0.5802 0.5698 0.4888 0.487 0.528 0.5296 0.581
Если нужно посчитать среднее и стандартное отклонение в каждом столбце то:
cat data1.dat | awk '{ for (i=1; i<=NF; i++) (sum[i]+= $i) (sumsq[i]+=$i^2)} END {for (i in sum) print sum[i]/NR, sqrt(sumsq[i]/NR-(sum[i]/NR)^2)}'
Комментариев нет:
Отправить комментарий