Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Given a tab separated data file (or another separator), how would you compute the mean of a column?

Too bad that there are no simple binaries that performs simple mathematical operations over those kind of files.

share|improve this question
up vote 7 down vote accepted
awk -F'\t' '{ sum += $1 } END { print sum / NR }'

Here $1 is the first \tab-separated column.

share|improve this answer

If you have R installed you can also use:

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

You can also change the function (mean) to other statistical functions, say:

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

If you want to specify the column, say, use column 3, then you use the notation [,3]

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

Enjoy!

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .