在 Bash 中快速计算文本文件中某一列平均值的命令

在 Bash 中快速计算文本文件中某一列平均值的命令

给定一个制表符分隔的数据文件(或另一个分隔符),如何计算一列的平均值?

遗憾的是,没有简单的二进制文件可以对这些文件执行简单的数学运算。

答案1

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

$1是第一个\t以 ab 分隔的列。

答案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]))"

享受!

相关内容