0
我有10年(1995-2004)的時間序列日常數據集,其中一些缺失值爲9999.00。我想計算每年的年平均值,而不考慮缺失值。使用shell腳本計算閏年日曆中的年平均值
我可以能夠與下面的命令
awk '!/\9999.00/{sum += $1; count++} NR%365==0{print count ? (sum) :9999.00;sum=count=0}'ifile
使其考慮365天日曆但我不能能夠與閏年日曆修改。我還需要添加多年的專欄。我的願望輸出是
1995 annual_average
1996 annual_average
1997 annual_average
....
例如: 我從1995 - 2000年以下數據。我需要計算每3條線,而不是365和4線,而不是366的平均,如果它是一個閏年:
3
3
4
9999.00
4
9999.00
13
3
9999.00
9999.00
9999.00
9999.00
9999.00
3
4
2
2
2.6
5.1
4.5
試用命令:
awk '!/\9999.00/{sum += $1; count++} NR%3==0{print count ? (sum) :9999.00;sum=count=0}'ifile
慾望輸出:
1995 3.33
1996 8.5 it is a leap year, so average of 4 lines without considering missing values (4+13)/2
1997 3
1998 9999.00
1999 3
2000 3.55 leap year
366天的日曆是什麼意思?你是說閏年?您還應該提供樣本數據輸入。 – xvan
您可以通過[此規則](http://stackoverflow.com/a/22352190/1477064)確定一年是否爲閏年,並使用該信息將NR%365更改爲NR%366。我的awk foo是不夠的嘗試。 – xvan
謝謝您提供更多信息@xvan但我無法修改我的腳本。主要問題是在一個時間序列中,NR%365將如何變爲NR%366? – Kay