Comando rápido para calcular a média de uma coluna em um arquivo de texto no bash

3

Dado um arquivo de dados separado por tabulação (ou outro separador), como você calcularia a média de uma coluna?

Pena que não existam binários simples que executem operações matemáticas simples sobre esse tipo de arquivo.

    
por GuillaumeThomas 30.07.2011 / 10:49

2 respostas

8
awk -F'\t' '{ sum += $1 } END { print sum / NR }'

Aqui $1 é a primeira coluna \t ab-separated.

    
por 30.07.2011 / 12:31
3

Se você tiver o R instalado, também poderá usar:

Rscript -e "(mean(read.table(\"file.tab\")))"

Você também pode alterar a função (média) para outras funções estatísticas, por exemplo:

Rscript -e "(mean(read.table(\"file.tab\")))"
Rscript -e "(sd(read.table(\"file.tab\")))"
Rscript -e "(summary(read.table(\"file.tab\")))"

Se você quiser especificar a coluna, digamos, use a coluna 3, use a notação [ 3]

Rscript -e "(sum(read.table(\"file\")[,3]))"

Aproveite!

    
por 31.07.2011 / 17:43