Jeśli nie masz nic przeciwko napisaniu małego skryptu, aby zrobić to, czego potrzebujesz, polecam to zrobić w R , systemie statystyk open source.
Rozważmy na przykład ten linijkę, aby uzyskać listę 100 liczb rozkładów Gaussa:
$ Rscript -e 'write(rnorm(100) * 100 + 100, "", 1)'
234.2903
-25.53289
168.0262
-28.49810
105.0687
85.97355
269.5072
...
Rozwalmy to.
Standardowe R
polecenie przenosi Cię do interaktywnego środowiska programowania, co jest w porządku, jeśli próbujesz dowiedzieć się, jak zrobić coś ręcznie lub budujesz coś stopniowo, ale z twojego pytania brzmi, jakbyś potrzebował tylko listy liczb wysłać do innego programu. Zamiast tego używamy Rscript
, który zachowuje się bardziej jak tradycyjny interpreter skryptów uniksowych: możesz przekazać mu nazwę pliku zawierającego skrypt R lub użyć standardowej -e
flagi, aby przekazać cały tekst programu w wierszu poleceń.
rnorm()
jest funkcją R, aby uzyskać listę liczb losowych o rozkładzie „normalnym” lub Gaussa. Zajmuje do trzech parametrów, z których tylko pierwszy jest wymagany, ile liczb chcesz. Poprosiliśmy o 100. Biorąc wartości domyślne dla pozostałych dwóch opcjonalnych parametrów, otrzymujemy średnią 0 i odchylenie standardowe 1.
Arytmetyka po prostu pokazuje fajną funkcję języka R: możesz wykonywać arytmetykę na całych tabelach danych, macierzach itp., Równie łatwo jak wartość skalarną w bardziej typowym języku. Pomnożyłem wszystkie wygenerowane wartości przez 100 i dodałem do nich 100, tylko dlatego, że mogę. Ponieważ R jest pełnoprawnym językiem programowania, nie ma ograniczeń co do tego, co możesz zrobić z tą listą liczb. To zaleta korzystania z takiego systemu zamiast polecenia o ustalonym celu, takiego jak jot
.
Wynik tej poprzedniej operacji przekazujemy do write()
funkcji, która domyślnie zapisuje dane do pliku, ale przesłoniliśmy to, przekazując pusty łańcuch drugiego parametru, nazwy pliku, więc zapisuje tabelę do zamiast tego terminal. Następny parametr, 1
po prostu mówi mu, że chcemy, aby nasze dane wyjściowe były w formacie jednokolumnowym.
R ma wiele innych funkcji generowania liczb losowych wbudowanych w system podstawowy. Na przykład możemy naśladować jot
polecenie w odpowiedzi lcpriani za pomocą tego skryptu:
$ Rscript -e 'write(round(runif(10, 12, 27)), "", 1)'
W tym przypadku używamy runif()
do uzyskania 10 równomiernie rozmieszczonych liczb losowych od 12 do 27. Podobnie rnorm()
, jak użyliśmy powyżej, funkcja zwraca wartości zmiennoprzecinkowe, więc musimy round()
zapisać je do najbliższej liczby całkowitej przed zapisaniem ich na ekranie.
R ma również bogaty zestaw dodatków w CRAN , repozytorium pakietów wzorowanym na CPAN Perla. Jednym, który może Cię zainteresować, jest po prostu nazywany random , który działa jako interfejs do random.org , usługi zwracającej prawdziwe liczby losowe generowane z hałasu atmosferycznego.
R jest kompletnym środowiskiem programistycznym, więc może się okazać, że tak naprawdę nie musisz wyciągać liczb z R w formacie tekstowym. Możesz być w stanie rozwiązać swój problem całkowicie w R. Daj mu szansę.