Skip to main content
5 of 7
added 74 characters in body
Lesmana
  • 28.1k
  • 20
  • 85
  • 87

You can use the R programming language.

Here is a quick and dirty R script:

#! /usr/bin/env Rscript d<-scan("stdin", quiet=TRUE) cat(min(d), max(d), median(d), mean(d), sep="\n") 

Note the "stdin" which is a special filename to read from stdin.

Suppose the data is in a file named datafile:

$ cat datafile 1 2 4 

Now you can redirect the datafile to the R script:

$ ./mmmm.r < datafile 1 4 2 2.333333 

Also works for floating points:

$ cat datafile 1.1 2.2 4.4 $ ./mmmm.r < datafile 1.1 4.4 2.2 2.566667 

If you don't want to write an Rscript file you can invoke a true one-liner in the command line using Rscript:

$ Rscript -e 'd<-scan("stdin", quiet=TRUE); \ cat(min(d), max(d), median(d), mean(d), sep="\n")' < datafile 1 4 2 2.333333 

Read the fine R manuals at http://cran.r-project.org/manuals.html.

Unfortunately the full reference is only available in PDF. Another way to read the reference is by typing ?topicname in the prompt of an interactive R session.


For completeness: there is an R command which outputs all the values you want, and more. Unfortunately in a human friendly format which is hard to parse programmatically.

> summary(c(1,2,4)) Min. 1st Qu. Median Mean 3rd Qu. Max. 1.000 1.500 2.000 2.333 3.000 4.000 
Lesmana
  • 28.1k
  • 20
  • 85
  • 87