web-dev-qa-db-ja.com

RHELのRの軽量代替品?

ログファイル情報の統計分析にRを使用したいのですが、「制限された」RコアRPMでさえ、まだインストールされていない多くの依存関係があることがわかりました。周辺機器の必要性のためにそれほど多くのパッケージをインストールしたくありません。

RHEL 6での単純な統計分析のための軽量の代替手段はありますか? stdinで大きな値のセット(1行に1つの値)を受け入れ、最小、最大、平均、中央値、95パーセンタイル、および標準偏差を出力するRスクリプトがあります。

詳細については、grepとawkを使用して、ウェブサーバーのログファイルで特定のパスのGETリクエストを検索し、応答時間を取得し、上記の指標を計算して、ウェブアプリケーションへの変更のパフォーマンスへの影響を測定しています。 。

グラフ作成機能は必要ありません。単純な計算だけです。見落としているものはありますか?

2
Eric Rath

python NumPy パッケージを使用します。これは、yum install numpyまたはpip 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()

これにより、基本的な統計を最初から再実装する必要がなくなります。一般に、Python with NumPy and SciPy はRの機能が豊富な代替手段であり、多くの場合 パフォーマンスが向上

また、grepawkで解析する独自のログファイルを作成する代わりに、次のようなものを使用できます。 pylogsparser これは「次のセットでパッケージ化されたログパーサーライブラリです。すぐに使用できるパーサー(DHCPd、Squid、Apacheなど)」。

1
aculich

awkの最小値、最大値、合計値、平均値、中央値は次のとおりです。

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パーセンタイルは、読者の練習問題として残されています。

2
larsks

Perl、PythonまたはRubyのようなプログラミング/スクリプト言語は、これを簡単に実行でき、bcも利用できます。

1
Sven