Compute average and standard deviation with awk

后端 未结 4 839
误落风尘
误落风尘 2020-12-14 16:43

I have a \'file.dat\' with 24 (rows) x 16 (columns) data.

I have already tested the following awk script that computes de average of each column.

t         


        
4条回答
  •  暖寄归人
    2020-12-14 17:17

    Your script should somehow be in this form instead:

    awk '{
        sum = 0
        for (i=1; i<=NF; i++) {
            sum += $i
        }
        avg = sum / NF
        avga[NR] = avg
        sum = 0
        for (i=1; i<=NF; i++) {
            sum += ($i - avg) ^ 2
        }
        stda[NR] = sqrt(sum / NF)
    }
    
    END { for (i = 1; i in stda; ++i) { printf "%f %f \n", avga[i], stda[i] } }' file.dat >> aver-std.dat
    

提交回复
热议问题