bash でテキスト ファイル内の列の平均を計算する高速コマンド

bash でテキスト ファイル内の列の平均を計算する高速コマンド

タブで区切られたデータ ファイル (または別の区切り文字) がある場合、列の平均をどのように計算しますか?

残念なことに、そのような種類のファイルに対して単純な数学演算を実行する単純なバイナリは存在しません。

答え1

awk -F'\t' '{ sum += $1 } END { print sum / NR }'

これが$1最初の\tab 区切りの列です。

答え2

R がインストールされている場合は、以下も使用できます。

Rscript -e "(mean(read.table(\"file.tab\")))"

関数 (平均) を他の統計関数に変更することもできます。たとえば、次のようになります。

Rscript -e "(mean(read.table(\"file.tab\")))"
Rscript -e "(sd(read.table(\"file.tab\")))"
Rscript -e "(summary(read.table(\"file.tab\")))"

列を指定したい場合、例えば列3を使用する場合は、[,3]という表記を使用します。

Rscript -e "(sum(read.table(\"file\")[,3]))"

楽しむ!

関連情報