Como calcular o desvio padrão para cada linha?

0

Eu tenho um arquivo de 61 colunas; Eu gostaria de calcular o desvio padrão (SD) para cada linha com ignorando a primeira coluna e imprimir os resultados contra a primeira coluna, por favor, note que o número de colunas não é o mesmo para cada linha e também algumas linhas têm apenas valores para a primeira coluna que não está incluindo no cálculo do SD

input file
0.0  4  6  5  1  2  9  4  5  1  ..... 
0.5  3  1  
1.0  3  7  8  2  
1.5  3  3  3  4  6  4  5   
2.0  
2.5  6  7  6  9 
    
por Mohsen El-Tahawy 14.07.2016 / 19:08

1 resposta

3

isso dificilmente é uma questão de linux

awk 'NF>1{ s=0;s2=0;c=NF-1 ;
           for (i=2; i<=NF;i++) { s+=$i ; s2+=$i*$i;}
           # compute sd from c,s and s2
           printf "%f\n",sqrt((s2/c)-(s/c)^2) ;}'
    
por 14.07.2016 / 19:13

Tags