12

nixシステムで見つかると予想されるツールを使用して(実際、必要に応じて、msdosも問題ありません)、一連の数値の平均を計算する最も簡単で最速の方法は何ですか。ストリームまたはファイルの行ごとに?

4

8 に答える 8

16
awk ' { n += $1 }; END { print n / NR }'

の合計を累積し、項目数 ( = レコード数)nで割ります。NR

整数または実数で機能します。

于 2008-10-18T02:26:41.367 に答える
12

ぎこちない

awk '{total += $1; count++ } END {print total/count}'
于 2008-10-18T02:05:49.800 に答える
5

UNIX 用Num-Utilsの使用:

average 1 2 3 4 5 6 7 8 9
于 2008-10-18T01:48:31.427 に答える
3
perl -e 'while (<>) { $sum += $_; $count++ } print $sum / $count, "\n"';
于 2008-10-18T01:40:58.603 に答える
2

「st」を使用する ( https://github.com/nferraz/st ):

$ st numbers.txt
N      min   max    sum    mean  sd
10.00  1.00  10.00  55.00  5.50  3.03

個々の統計を表示するオプションを指定します。

$ st numbers.txt --mean
5.5

(免責事項:私はこのツールを書きました:))

于 2013-09-04T15:16:04.380 に答える
1

Powershellでは、

get-content .\meanNumbers.txt | measure-object -average

もちろん、それは冗長な構文です。エイリアスを使用して入力した場合は、

gc .\meanNumbers.txt | measure-object -a
于 2008-10-18T13:11:30.567 に答える
0

パール。

@a = <STDIN>;

for($i = 0; $i < #@a; $i++)
{
   $sum += $a[i];
}

print $a[i]/#@a;

Emptor の警告: 私の構文は少しおかしいかもしれません。

于 2008-10-18T01:40:44.453 に答える