集計計算のための構文を提供するawkバージョンはありますか?

集計計算のための構文を提供するawkバージョンはありますか?

私は時々単純な統計を計算するためにawkスクリプトを書くことがあります。たとえば、ヒストグラム、平均、標準偏差、値の分散などを計算します。

補助配列/変数や句などのforループを使用してこの操作を繰り返し実行するのは、END少し面倒でエラーが発生しやすいです。

存在するこの種の作業には本当に素晴らしい構文があります。重合。概念/APIは次のようになります。Boost C++ライブラリのアキュムレータ

だから私の質問は:そのような統計を簡単に繰り返し計算できるように、同様の概念/構文を提供するawkバリアントはありますか?

この構文の想像力が豊富な例は次のとおりです。

$ someawk '{ @time[$1] = avg($2) }' measurements.log
prog1    150
prog2    200
....

(ここで、最初の列にはプログラム名が含まれ、2番目の列には単一の測定の実行時間、measurements.log各プログラムの複数の測定値が含まれ、集計関数はavg平均を計算します。)

ベストアンサー1

awkは簡単なテキスト処理のために設計されています。もっと欲しいなら、awkを捨ててより強力な言語を使うべきです。

真珠自然な進行です。これはawkと同様の構文のほとんどの機能を持ち、ほとんどの非組み込みUNIXシステムにデフォルトでインストールされています。私はあなたが説明する統計分析を実行できるライブラリを知りませんが、次のようなものがあります。多くの図書館そこに。

統計分析用に選択した言語は次のとおりです。。テキスト処理では awk より弱いので、データが既に R が理解できる形式でない限り、awk を R にパイプして最初に処理する必要があります。より単一のコマンドで数値リストの最小値、最大値、中央値、平均を取得する方法はありますか?あなたの例と同様に、Rを使用する例です。

おすすめ記事