Лучший способ в оболочке сделать базовую статистику? - PullRequest
6 голосов
/ 09 ноября 2010

В современной оболочке Unix так много приятностей, что мне нужно почти всегда установить или быстро скачать;проблема только в том, чтобы найти его.В этом случае я пытаюсь найти базовые статистические операции.

Например, сейчас я создаю прототип приложения на основе искателя.Благодаря wget плюс некоторые другие вкусности, у меня теперь есть несколько сотен тысяч файлов.Таким образом, я могу оценить стоимость выполнения этого с миллиардами файлов, я хотел бы получить среднее и медиану размеров файлов выше определенного предела.Например:

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

Конечно, я мог бы написать свою собственную медиану и средние биты в небольшом количестве perl или awk.Но разве не существует какого-нибудь дружественного к noob пакета, который делает это и многое другое?

1 Ответ

8 голосов
/ 09 ноября 2010

Можете ли вы установить R ? Тогда littler и его команда r могут помочь:

~/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)

Это пример, который мы использовали ранее, следовательно, функция R summary(), которая содержит median() и mean(), а также график ascii-art stem. Обобщение к простому вызову median() или mean(), конечно, довольно просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...