Você pode usar a linguagem de programação R .
Aqui está um script R rápido e sujo:
#! /usr/bin/env Rscript
d<-scan("stdin", quiet=TRUE)
cat(min(d), max(d), median(d), mean(d), sep="\n")
Observe o "stdin"
em scan
, que é um nome de arquivo especial para ler a partir da entrada padrão (isso significa de pipes ou redirecionamentos).
Agora você pode redirecionar seus dados sobre stdin para o script R:
$ cat datafile
1
2
4
$ ./mmmm.r < datafile
1
4
2
2.333333
Também funciona para pontos flutuantes:
$ cat datafile2
1.1
2.2
4.4
$ ./mmmm.r < datafile2
1.1
4.4
2.2
2.566667
Se você não quer escrever um arquivo de script R, você pode invocar um verdadeiro one-liner (com linebreak apenas para legibilidade) na linha de comando usando 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
Leia os manuais R bem no link .
Infelizmente, a referência completa está disponível apenas em PDF. Outra maneira de ler a referência é digitando ?topicname
no prompt de uma sessão R interativa.
Para completar: há um comando R que gera todos os valores desejados e mais. Infelizmente, em um formato amigável humano que é difícil de analisar programaticamente.
> 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