Comando rápido para calcular la media de una columna en un archivo de texto en bash

Comando rápido para calcular la media de una columna en un archivo de texto en bash

Dado un archivo de datos separados por tabulaciones (u otro separador), ¿cómo calcularía la media de una columna?

Lástima que no existan binarios simples que realicen operaciones matemáticas simples sobre ese tipo de archivos.

Respuesta1

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

Aquí $1está la primera \tcolumna separada por ab.

Respuesta2

Si tienes R instalado también puedes usar:

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

También puedes cambiar la función (media) a otras funciones estadísticas, por ejemplo:

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

Si desea especificar la columna, digamos, use la columna 3, entonces use la notación [,3]

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

¡Disfrutar!

información relacionada