2010-11-09 33 views
6

Modern Unix kabuk ortamıyla birlikte, ihtiyaç duyduğum şeyin neredeyse her zaman makinem üzerine kurulduğunu veya hızlı bir şekilde indirilmesini sağlayan çok fazla güzellik var; Sorun sadece onu bulmak. Bu durumda, temel istatistiksel işlemleri bulmaya çalışıyorum. Örneğin, şu anda bir tarayıcı tabanlı uygulamaya prototip yapıyorum. Wget ve diğer bazı hediyeler sayesinde, şimdi birkaç yüz bin dosyam var. Bu yüzden milyarlarca dosya ile bunu yapmanın maliyetini tahmin edebilirim, belli bir sınırın üzerinde ortalama ve medyan dosya boyutlarını almak istiyorum. Örn .:Kabukta temel istatistikler yapmak için en iyi yol?

% ls -l | perl -ne '@a=split(/\s+/); next if $a[4] <100; print $a[4], "\n"' > sizes 
% median sizes 
% mean sizes 

Tabii, ben kendi medyan kodlamak ve Perl veya awk'ın Birazdan bit anlamına gelebilir. Ama zaten bunu yapan bir çok noob dostu paket yok ve daha fazlası var mı?

cevap

8

R yükleyebilir misiniz? Daha sonra littler ve r komut yardımcı olabilir:

~/svn/littler/examples$ ls -l . | awk '!/^total/ {print $5}' 
87 
1747 
756 
988 
959 
871 
~/svn/littler/examples$ ls -l . | awk '!/^total/ {print $5}' | ./fsizes.r 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
    87  785  915  901  981 1750 

    The decimal point is 3 digit(s) to the right of the | 

    0 | 1 
    0 | 89 
    1 | 00 
    1 | 7 

~/svn/littler/examples$ cat fsizes.r 
#!/usr/bin/r -i 

fsizes <- as.integer(readLines()) 
print(summary(fsizes)) 
stem(fsizes) 

Bu örnek, daha önce kullanılan olduğu, dolayısıyla R fonksiyonu hem stem arsa median() ve mean() gibi bir ASCII-resmi içeren summary(). Yalnızca median() veya mean() numaralı telefonların aranması genelleştirilebilir.

+0

Teşekkürler! Hızlı bir "sudo aptitude install littler" ve yarışlara gidiyorum. Bu harika! –

+0

Müthiş! Bu * tam olarak * kullanılması gerektiği şekilde *. Eğer R sorularınız varsa, oldukça canlı olan [r] etiketinin altına buradan gönderin. Ve ben sadece [r] etiketini yukarıdaki sorunuza ekledim - umarım sakıncası yoktur. –

İlgili konular