Czy jest jakieś narzędzie wiersza polecenia, które akceptuje przepływ liczb (w formacie ascii) ze standardowego wejścia i podaje podstawowe statystyki opisowe dla tego przepływu, takie jak min, maks, średnia, mediana, RMS, kwantyle itp.? Dane wyjściowe mogą być analizowane przez następne polecenie w łańcuchu poleceń. Środowiskiem roboczym jest Linux, ale inne opcje są mile widziane.
27
Odpowiedzi:
Możesz to zrobić za pomocą R , co może być trochę przesada ...
EDYCJA 2: [OOPS, wygląda na to, że ktoś inny nacisnął Rscript, kiedy to pisałem.] Znalazłem łatwiejszy sposób. Zainstalowany z R powinien być Rscript, który ma robić to, co próbujesz zrobić. Na przykład, jeśli mam plik
bar
z listą liczb, po jednym w wierszu:Potokuje te liczby do R i uruchamia
summary
polecenie R w wierszach, zwracając coś takiego:Możesz także zrobić coś takiego:
zdobyć kwantyle. I oczywiście możesz odciąć pierwszy wiersz wyniku (który zawiera etykiety) za pomocą czegoś takiego:
Zdecydowanie poleciłbym najpierw zrobić to, co chcesz w interaktywnym R, aby upewnić się, że masz poprawne polecenie. Próbując tego, pominąłem nawias zamykający, a Rscript nic nie zwraca - brak komunikatu o błędzie, brak wyniku, po prostu nic.
(Dla rekordu pasek plików zawiera:
źródło
R
poleceniami?foo
który zawierałsummary (as.numeric (readLines()))
jako pierwszy wiersz, a następnie jeden element danych numerycznych na wiersz dla reszty pliku. PoreadLines()
prostu odczytuje ze standardowego wejścia (to wszystko, co następuje, do końca pliku).R
w obu odpowiedziach i wydaje się, że jest to ogromne narzędzie do drobnego zadania. Cóż, odpowiedzi działają, ale czy jest coś jeszcze opróczR
?scipy
, zwłaszcza jeśli już używasz Pythona. Jeśli używasz / lubisz Clojure (lisp oparty na JVM, clojure.org ), zbudowane jest na nim środowisko statystyczneIncanter
( incanter.org ). Możesz także spróbować gnu Octave.Spróbuj „st”:
Możesz również zobaczyć podsumowanie pięciu liczb:
Możesz go pobrać tutaj:
https://github.com/nferraz/st
(ZASTRZEŻENIE: Napisałem to narzędzie :))
źródło
st
jest dostępny przez Homebrewbrew install st
st
może również odnosić się dosimple terminal
.R udostępnia polecenie o nazwie Rscript . Jeśli masz tylko kilka liczb, które możesz wkleić w linii poleceń, użyj tego jednego linijki:
Co skutkuje w
Jeśli chcesz czytać ze standardowego wejścia, użyj tego:
Jeśli liczby na standardowym wejściu są oddzielone znakami powrotu karetki (tj. Jedna liczba na wiersz), użyj
Można utworzyć aliasy dla tych poleceń:
źródło
read.table
pomysł to dobry sposób na obejście jednego elementu na linię.datamash to kolejna świetna opcja. Pochodzi z projektu GNU.
Jeśli masz homebrew / linuxbrew, możesz:
brew install datamash
źródło
Istnieje również simple-r, który może zrobić prawie wszystko, co R, ale z mniejszą liczbą naciśnięć klawiszy:
https://code.google.com/p/simple-r/
Aby obliczyć podstawowe statystyki opisowe, należałoby wpisać jedną z:
Nie ma żadnego prostego-R!
źródło
Istnieje sta, który jest wariantem st ++ c ++, do którego również odwołuje się ten komentarz.
Napisany w c ++ jest szybki i może obsługiwać duże zbiory danych. Jest prosty w użyciu, obejmuje wybór obiektywnych lub stronniczych estymatorów i może generować bardziej szczegółowe informacje, takie jak błąd standardowy.
Możesz pobrać sta z github .
Uwaga: Jestem autorem Sta .
źródło
Na wszelki wypadek istnieje datastat
https://sourceforge.net/p/datastat/code/
prosty program dla Linuksa obliczający proste statystyki z wiersza poleceń. Na przykład,
plik cat.dat | datastat
wyświetli średnią wartość we wszystkich wierszach dla każdej kolumny file.dat. Jeśli potrzebujesz znać odchylenie standardowe, min, max, możesz dodać odpowiednio opcje --dev, --min i --max.
datastat ma możliwość agregowania wierszy na podstawie wartości co najmniej jednej kolumny „kluczowej”.
Jest napisany w C ++, działa szybko i zajmuje niewiele pamięci, i może być ładnie połączony z innymi narzędziami, takimi jak cut, grep, sed, sort, awk itp.
źródło
Możesz również rozważyć użycie clistats . Jest to wysoce konfigurowalne narzędzie interfejsu wiersza poleceń do obliczania statystyk strumienia ograniczonych liczb wejściowych.
Opcje we / wy
Opcje analizy
Opcje statystyki
UWAGA: Jestem autorem.
źródło
Narzędziem, które można wykorzystać do obliczania statystyk i rozkładu widoków w trybie ASCII, jest ministat . Jest to narzędzie FreeBSD, ale jest ono również spakowane do popularnej dystrybucji Linuksa, takiej jak Debian / Ubuntu.
Przykład użycia:
źródło
źródło
FLOAT_MAX-1.0
Natknąłem się na ten stary wątek, szukając czegoś innego. Chciałem tego samego, nie mogłem znaleźć niczego prostego, więc zrobiłem to w Perlu, dość trywialne, ale używaj go wiele razy dziennie: http://moo.nac.uci.edu/~hjm/stats
przykład:
(scut jest wolniejszy, ale prawdopodobnie łatwiejszy do wersji cut): http://moo.nac.uci.edu/~hjm/scut opisany: http://moo.nac.uci.edu/~hjm/scut_cols_HOWTO. HTML
źródło
Inne narzędzie: tsv-podsumowanie z TSV Utilities na eBayu . Obsługuje wiele podstawowych statystyk podsumowujących, takich jak min, maks, średnia, mediana, kwantyle, odchylenie standardowe, MAD i kilka innych. Jest przeznaczony dla dużych zestawów danych i obsługuje wiele pól i grupowanie według klucza. Dane wyjściowe są oddzielone tabulatorami. Przykład sekwencji liczb od 1 do 1000, po jednej w wierszu:
Nagłówki są zwykle generowane z linii nagłówka na wejściu. Jeśli wejście nie ma nagłówka, można go dodać za pomocą
-w
przełącznika:Oświadczenie: Jestem autorem.
źródło