È possibile utilizzare il linguaggio di programmazione R .
Ecco uno script R veloce e sporco:
#! /usr/bin/env Rscript
d<-scan("stdin", quiet=TRUE)
cat(min(d), max(d), median(d), mean(d), sep="\n")
Nota "stdin"
in scan
quale è un nome file speciale da leggere dall'input standard (ovvero da pipe o reindirizzamenti).
Ora puoi reindirizzare i tuoi dati su stdin allo script R:
$ cat datafile
1
2
4
$ ./mmmm.r < datafile
1
4
2
2.333333
Funziona anche con punti mobili:
$ cat datafile2
1.1
2.2
4.4
$ ./mmmm.r < datafile2
1.1
4.4
2.2
2.566667
Se non si desidera scrivere un file di script R, è possibile richiamare un vero one-liner (con interruzione di riga solo per leggibilità) nella riga di comando utilizzando 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
Leggi i buoni manuali R su http://cran.r-project.org/manuals.html .
Purtroppo il riferimento completo è disponibile solo in PDF. Un altro modo per leggere il riferimento è digitando ?topicname
il prompt di una sessione R interattiva.
Per completezza: esiste un comando R che emette tutti i valori desiderati e altro ancora. Sfortunatamente in un formato a misura d'uomo che è difficile da analizzare a livello di codice.
> 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