Gibt es ein Befehlszeilentool, das den Zahlenfluss (im ASCII-Format) von der Standardeingabe akzeptiert und die grundlegenden deskriptiven Statistiken für diesen Fluss liefert, z. B. Min, Max, Durchschnitt, Median, RMS, Quantile usw.? Die Ausgabe kann mit dem nächsten Befehl in der Befehlszeilenkette analysiert werden. Die Arbeitsumgebung ist Linux, aber andere Optionen sind willkommen.
27
Antworten:
Sie können dies mit R tun , was ein bisschen übertrieben sein kann ...
EDIT 2: [OOPS, sieht aus wie jemand anderes, der mit Rscript getroffen wurde, als ich das noch einmal tippte.] Ich habe einen einfacheren Weg gefunden. Mit R sollte Rscript installiert sein, das das tun soll, was Sie versuchen. Wenn ich zum Beispiel eine Datei
bar
mit einer Liste von Zahlen habe, eine pro Zeile:Pipe diese Zahlen in R und führe den
summary
Befehl von R in den Zeilen aus und gebe so etwas zurück wie:Sie könnten auch etwas tun wie:
Quantile zu bekommen. Und Sie könnten natürlich die erste Zeile der Ausgabe (die Labels enthält) mit etwas abhacken wie:
Ich empfehle dringend, zunächst in Interactive R das zu tun, was Sie wollen, um sicherzustellen, dass Sie den richtigen Befehl haben. Bei diesem Versuch habe ich die schließende Klammer weggelassen und Rscript gibt nichts zurück - keine Fehlermeldung, kein Ergebnis, nur nichts.
(Für den Datensatz enthält die Dateileiste:
quelle
R
Befehle voranstellen ?foo
, diesummary (as.numeric (readLines()))
als erste Zeile ein numerisches Datenelement und für den Rest der Datei ein numerisches Datenelement pro Zeile enthält. DasreadLines()
liest gerade von stdin (was alles ist, was folgt, bis zum Ende der Datei).R
beide Antworten gehalten, und es scheint ein riesiges Werkzeug für eine winzige Aufgabe zu sein. Nun, die Antworten funktionieren, aber gibt es noch etwas anderes alsR
?scipy
, insbesondere wenn Sie bereits Python verwenden. Wenn Sie / like Clojure (lisp basiert auf JVM, clojure.org ) verwenden, gibt es die darauf aufbauende statistische UmgebungIncanter
( incanter.org ). Sie könnten auch Gnu Octave ausprobieren.Versuchen Sie "st":
Sie können auch die fünf Zahlenübersicht sehen:
Sie können es hier herunterladen:
https://github.com/nferraz/st
(HAFTUNGSAUSSCHLUSS: Ich habe dieses Tool geschrieben :))
quelle
st
ist über Homebrew verfügbarbrew install st
st
kann auch auf verweisensimple terminal
.R stellt einen Befehl mit dem Namen Rscript bereit . Wenn Sie nur wenige Zahlen haben, die Sie in die Befehlszeile einfügen können, verwenden Sie diese eine Zeile:
was in ... endet
Wenn Sie von der Standardeingabe lesen möchten, verwenden Sie Folgendes:
Wenn die Nummern in der Standardeingabe durch Zeilenumbrüche getrennt sind (dh eine Nummer pro Zeile), verwenden Sie
Man kann Aliase für diese Befehle erstellen:
quelle
read.table
Idee ist ein guter Weg, um einen Artikel pro Zeile zu umgehen.Datamash ist eine weitere großartige Option. Es ist aus dem GNU-Projekt.
Wenn Sie Homebrew / Linuxbrew haben, können Sie Folgendes tun:
brew install datamash
quelle
Es gibt auch simple-r, das fast alles kann, was R kann, aber mit weniger Tastenanschlägen:
https://code.google.com/p/simple-r/
Um grundlegende deskriptive Statistiken zu berechnen, müsste man Folgendes eingeben:
Bekommt kein einfaches R!
quelle
Es gibt sta, eine c ++ - Variante von st, auf die in diesen Kommentaren ebenfalls verwiesen wird.
Da es in c ++ geschrieben ist, ist es schnell und kann mit großen Datenmengen umgehen. Es ist einfach zu bedienen, umfasst die Auswahl von unvoreingenommenen oder voreingenommenen Schätzern und kann detailliertere Informationen wie Standardfehler ausgeben.
Sie können sta bei github herunterladen .
Disclaimer: Ich bin der Autor von sta .
quelle
Nur für den Fall, es gibt Datastat
https://sourceforge.net/p/datastat/code/
Ein einfaches Programm für Linux, das einfache Statistiken über die Befehlszeile berechnet. Beispielsweise,
cat file.dat | datastat
gibt den Durchschnittswert über alle Zeilen für jede Spalte von file.dat aus. Wenn Sie die Standardabweichung (min, max) kennen müssen, können Sie die Optionen --dev, --min und --max hinzufügen.
datastat hat die Möglichkeit, Zeilen basierend auf dem Wert einer oder mehrerer "Schlüssel" -Spalten zu aggregieren.
Es ist in C ++ geschrieben, läuft schnell und mit geringem Speicherbedarf und kann problemlos mit anderen Tools wie cut, grep, sed, sort, awk usw. kombiniert werden.
quelle
Sie können auch Clistats verwenden . Es ist ein in hohem Maße konfigurierbares Tool für die Befehlszeilenschnittstelle zum Berechnen von Statistiken für einen Strom von durch Trennzeichen getrennten Eingabenummern.
E / A-Optionen
Analyseoptionen
Statistikoptionen
HINWEIS: Ich bin der Autor.
quelle
Ein Tool, das zur Berechnung von Statistiken und zur Ansichtsverteilung im ASCII-Modus verwendet werden kann, ist Ministat . Es ist ein Tool von FreeBSD, aber es ist auch für populäre Linux-Distributionen wie Debian / Ubuntu gepackt.
Anwendungsbeispiel:
quelle
quelle
FLOAT_MAX-1.0
Stolperte über diesen alten Faden auf der Suche nach etwas anderem. Wollte das Gleiche, konnte nichts Einfaches finden, tat es auch in Perl, ziemlich trivial, aber benutzte es mehrmals am Tag: http://moo.nac.uci.edu/~hjm/stats
Beispiel:
(scut ist eine langsamere, aber wohl einfacher zu schneidende Version): http://moo.nac.uci.edu/~hjm/scut beschrieben: http://moo.nac.uci.edu/~hjm/scut_cols_HOWTO. html
quelle
Ein weiteres Tool: tsv-summarize von eBay's TSV Utilities . Unterstützt viele der grundlegenden Zusammenfassungsstatistiken wie Min, Max, Mittelwert, Median, Quantile, Standardabweichung, MAD und einige mehr. Es ist für große Datenmengen gedacht und unterstützt mehrere Felder und die Gruppierung nach Schlüsseln. Die Ausgabe ist tabulatorgetrennt. Ein Beispiel für die Zahlenfolge 1 bis 1000, eine pro Zeile:
Überschriften werden normalerweise aus einer Überschriftenzeile in der Eingabe generiert. Wenn der Eingang keinen Header hat, kann einer mit dem
-w
Schalter hinzugefügt werden :Haftungsausschluss: Ich bin der Autor.
quelle