java 移动平均值_移动平均线和差异

我想在我的数据文件(data.txt)中使用5(连续五行)的窗口计算第2列($ 2)的移动/滚动平均值,然后使用每个窗口中的第一个和最后一个值之间的差值来计算AWK . 请参阅下面的数据:

> cat data.txt

2001 100

2002 110

2003 120

2004 130

2005 140

2006 900

2007 910

2008 920

2009 930

2010 940

> awk 'BEGIN{size=5} {mod=NR%size; if(NR<=size){count++}else{sum-=array[mod]};sum+=$2;array[mod]=$2;print $1"\t", $2"\t", sum/count}' data.txt

2001 100 100

2002 110 105

2003 120 110

2004 130 115

2005 140 120

2006 900 280

2007 910 440

2008 920 600

2009 930 760

2010 940 920

从上面附带的输出中可以看出,我可以使用上面显示的AWK脚本在2美元(输出为3美元)上进行移动平均 . 但是,我怎样才能修改上面的AWK脚本,这样我才能打印出每个窗口$ 2的第一个和最后一个值之间的$ 4差异?例如,我希望上面的输出看起来像这样:

2001 100 100

2002 110 105

2003 120 110

2004 130 115

2005 140 120 120-100

2006 900 280 280-105

2007 910 440 440-110

2008 920 600 600-115

2009 930 760 760-120

2010 940 920 920-280

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值