İhtiyacınız olanı yapmak için küçük bir komut dosyası yazmanın sakıncası yoksa, bunu açık kaynaklı istatistik sistemi olan R'de yapmanızı öneririm .
Örneğin, 100 Gauss dağıtılmış sayının bir listesini almak için bu tek astarı düşünün:
$ Rscript -e 'write(rnorm(100) * 100 + 100, "", 1)'
234.2903
-25.53289
168.0262
-28.49810
105.0687
85.97355
269.5072
...
Bunu parçalayalım.
Standart Rkomut sizi etkileşimli bir programlama ortamına getirir, bu da elle bir şey nasıl yapacağınızı veya kademeli olarak bir şeyler oluşturmaya çalışıyorsanız iyi bir şeydir, ancak sorunuzdan, sadece bir sayı listesine ihtiyacınız var gibi görünüyor başka bir programa göndermek için. Bunun yerine, Rscriptdaha çok geleneksel bir Unix kod yorumlayıcısı gibi davranıyoruz: R komut dosyası içeren bir dosyanın adını -eiletebilir veya tüm program metnini komut satırına iletmek için standart bayrağı kullanabilirsiniz .
rnorm()"Normal" veya Gauss dağılımıyla rastgele sayıların bir listesini almak için R işlevidir. Sadece birincisi gerekli olan üç parametreye kadar, kaç sayı istediğinizi alır. 100 istedik. Diğer iki isteğe bağlı parametre için varsayılanları alarak ortalama 0 ve standart sapma 1 elde ederiz.
Bundan sonra aritmetik sadece R dilinin havalı bir özelliğini gösteriyor: daha tipik bir dilde skaler bir değer kadar kolay bir şekilde tüm veri tabloları, matrisler, vb. Oluşturduğum tüm değerleri 100 ile çarptım ve 100'ü ekledim, çünkü yapabilirim. R tam teşekküllü bir programlama dili olduğundan, bu sayı listesiyle yapabileceğiniz şeylerin bir sınırı yoktur. Böyle bir sistem gibi sabit amaçlı bir komut kullanmanın avantajı budur jot.
Önceki işlemin sonucunu write(), verileri varsayılan olarak bir dosyaya yazan işleve geçiririz, ancak ikinci parametre olan dosya adı için boş bir dize geçirerek tabloyu terminal yerine. Bir sonraki parametre, 1çıktımızı tek sütun biçiminde istediğimizi söyler.
R, temel sistemde yerleşik birçok rastgele sayı üretme fonksiyonuna sahiptir. Örneğin, bu jotkomut dosyasıyla lcpriani'nin cevabındaki komutu taklit edebiliriz :
$ Rscript -e 'write(round(runif(10, 12, 27)), "", 1)'
Burada runif()12'den 27'ye kadar eşit dağılmış 10 rasgele sayı elde etmek için kullanıyoruz. rnorm()Yukarıda da kullandığımız gibi, bu fonksiyon kayan nokta değerleri döndürür, bu yüzden round()onları ekrana yazmadan önce onlara en yakın tam sayı değerlerine ihtiyacımız vardır.
R'nin ayrıca Perl CPAN'da modellenmiş bir paket deposu olan CRAN'da zengin bir eklenti seti var. İlginizi çekebilecek birine rastgele denir , bu da atmosfer gürültüsünden üretilen gerçek rasgele sayıları döndüren random.org'a bir arayüz görevi görür .
R tam bir programlama ortamıdır, bu yüzden sayılarınızı metin formatında R'den çıkarmanıza gerek olmayabilir. Sorununuzu tamamen R'de çözebilirsiniz. Bir şans verin.