Вы можете использовать язык программирования R .
Вот быстрый и грязный R-скрипт:
#! /usr/bin/env Rscript
d<-scan("stdin", quiet=TRUE)
cat(min(d), max(d), median(d), mean(d), sep="\n")
Обратите внимание, "stdin"
в scan
котором есть специальное имя файла для чтения из стандартного ввода (то есть из каналов или перенаправлений).
Теперь вы можете перенаправить ваши данные через стандартный ввод в скрипт R:
$ cat datafile
1
2
4
$ ./mmmm.r < datafile
1
4
2
2.333333
Также работает для плавающих точек:
$ cat datafile2
1.1
2.2
4.4
$ ./mmmm.r < datafile2
1.1
4.4
2.2
2.566667
Если вы не хотите писать файл сценария R, вы можете вызвать настоящую однострочную строку (с переносом строки только для удобства чтения) в командной строке, используя Rscript
:
$ Rscript -e 'd<-scan("stdin", quiet=TRUE)' \
-e 'cat(min(d), max(d), median(d), mean(d), sep="\n")' < datafile
1
4
2
2.333333
Прочитайте прекрасные руководства R на http://cran.r-project.org/manuals.html .
К сожалению, полная ссылка доступна только в формате PDF. Другой способ прочитать ссылку - набрать ?topicname
в приглашении интерактивный R-сеанс.
Для полноты: есть команда R, которая выводит все нужные вам значения и многое другое. К сожалению, в удобном для человека формате, который трудно анализировать программно.
> 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