R的轻量级替代RHEL?

我想用R来进行一些日志文件信息的统计分析,但是发现即使是“有限的”R核心RPM也有许多依赖项还没有安装。 我不想为外设需要安装这么多的软件包。

在RHEL 6上进行简单的统计分析是否有轻量级的select? 我有一个R脚本,在stdin上接受一大组值 – 每行一个值 – 并打印出最小值,最大值,平均值,中位数,第95百分位和标准偏差。

对于更多的上下文,我使用grep和awk在我们的web服务器日志文件中查找特定path的GET请求,获取响应时间并计算上面列出的度量,以便衡量对Web应用程序的更改的性能的影响。

我不需要任何绘图function,只需简单的计算。 有什么我忽略了吗?

使用python NumPy包,你应该可以使用yum install numpypip install numpy来轻松安装:

 import numpy n = numpy.random.rand(100) print 'min:', n.min() print 'max:', n.max() print 'mean:', n.mean() print 'median:', numpy.median(n) print '95th:', numpy.percentile(n, 95) print 'stddev:', n.std() 

这将使您无需重新从头开始重新实施基本的统计数据。 一般而言,带有NumPy和SciPy的 Python是R的一个function丰富的替代品,通常也具有更好的性能 。

而且,与使用grepawk编写自己的日志文件parsing相比,您可以使用如下的东西: pylogsparser ,它是“与一组准备使用的parsing器(DHCPd,Squid,Apache,…)打包的日志parsing器库”。

这里是awk中的min,max,total,mean和median:

 BEGIN { min="unset" max=0 } { values[NR] = $1 total += $1 average = total/NR if ($1 > max) max = $1 if (min == "unset" || $1 < $min) min = $1 } END { median=values[int(NR/2)] print "MIN:", min print "MAX:", max print "TOTAL:", total print "MEAN:", average print "MEDIAN:", median } 

标准差和第95百分位作为练习留给读者。

任何编程/脚本语言如Perl,Python或Ruby都可以轻松实现,而且bc也可用。