0
10年(1995-2004)の時系列データセットを9999.00という欠損値があります。私は、欠損値を考慮せずに毎年の年間平均を計算したいと思います。シェルスクリプトを使用して閏年カレンダーの時系列から年次平均を計算します
私はコマンド
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年からのデータを次のようしています。私はそれがうるう年であれば代わりに366のすべての3つのラインの代わりに、365と4線の平均を計算する必要があります。
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に1つの時系列でどのように変化するかです。 – Kay