现代Unix shell环境带来了许多好东西,我需要的东西几乎总是安装在我的机器上或者快速下载;麻烦就是找到它。在这种情况下,我试图找到基本的统计操作。
例如,现在我正在为基于抓取工具的应用程序进行原型设计。感谢wget加上其他一些好东西,我现在有几十万个文件。所以我可以用数十亿个文件估算这样做的成本,我想得到文件大小超过一定限度的平均值和中位数。 E.g:
% ls -l | perl -ne '@a=split(/\s+/); next if $a[4] <100; print $a[4], "\n"' > sizes
% median sizes
% mean sizes
当然,我可以用perl或awk编写自己的中位数和平均值。但是,是不是已经有一些noob友好的软件包可以做到这一点以及更多呢?
答案 0 :(得分:8)
~/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()
的泛化当然非常简单。