Я хотел бы рассчитать скользящее / скользящее среднее для столбца 2 ($ 2) в моем файле данных (data.txt), используя окно из 5 (более пяти последовательных строк), а затем разницу между первым и последним значением в пределахкаждое окно с использованием 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
Как видно из приведенного выше выходного документа, я могу сделать скользящее среднее на 2 доллара (на выходе в 3 доллара), используя скрипт AWK, показанный выше.Но как я могу изменить свой сценарий AWK выше, чтобы я также мог распечатать разницу в 4 доллара между первым и последним значением 2 доллара для каждого окна?Например, я хотел бы, чтобы вышеприведенный вывод выглядел так:
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