Chinaunix

标题: 如何用awk计算方差 [打印本页]

作者: jiangjingjiu    时间: 2010-11-29 18:36
标题: 如何用awk计算方差
hi,我是个shell新手,想请教一下用awk怎么计算方差?
输入的文件经过处理后是这样的:
12
4
4
5
5
2
23
.
.
.
.
.
各位兄弟帮帮忙,呵呵
作者: rpbear    时间: 2010-11-29 18:44
要是我没理解错什么是方差的话应该是这样的

  1. awk '{a[++i]=$1;} END{for(i in a)sum += a[i];ave=sum/i;for(i in a) delta += (a[i]-ave)*(a[i]-ave);print delta}' file
复制代码

作者: L_kernel    时间: 2010-11-29 19:25
  1. # cat file | tr '\n' ' ' | awk '{for(i=1;i<=NF;i++) total+=$i;ave=total/NF;for(i=1;i<=NF;i++) tmp+=(($i-ave)*($i-ave)); print tmp/NF}'
  2. 46.6939
复制代码
就那七个数字,专门用计算器计算了一下,结果是正确的。
作者: jiangjingjiu    时间: 2010-11-30 12:01
回复 1# jiangjingjiu

恩,谢谢啊,结果正确




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2