Como contar o número de ocorrências de um número maior que x, de cada coluna?

2

Estou tentando descobrir como contar o número de ocorrências de valores que são maiores que alguns números (ou seja, 0,1) em cada coluna e, em seguida, imprimir esse valor para cada coluna. Aqui estariam alguns dados de exemplo, exceto que isso precisaria ser geral, ou seja, funcionar para qualquer número de colunas:

Data     Sample1     Sample2     Sample3
row1      0.05         0.12        5.00 
row2      0.00         5.00        8.75
row3      1.19         0.00        6.78

E então a saída desejada poderia ser algo como (contar os números maiores que 0.1):

Sample1:  1
Sample2:  2
Sample3:  3

Perl, awk ou coreutils estariam bem, eu só preciso construí-lo em um script bash para gerar algumas estatísticas na tabela de dados.

Eu posso contar uma coluna, mas não sei como fazer isso para todos eles:

gawk -F"\t" 'NR>1 {if ($2>0.1) print $1;}' | wc -l

Agradecemos antecipadamente pela ajuda.

    
por jpalmer 22.12.2014 / 22:27

1 resposta

3

Você está quase lá, apenas faça isso no loop:

awk '{for(i=2;i<=NF;i++){if(NR==1)h[i]=$i;else if($i>0.1)x[i]++}}END{for(i in x){print h[i]": "x[i]}}'
    
por 22.12.2014 / 22:41

Tags