データのIDが同じ場合(私の場合は同じ日ですが異なる時間)、平均を計算したいと思います。時間別/時間別データに基づいて、私のデータの1日平均を計算します。私のデータは以下の通りです。
Date hour value
06/21/1978 14:00:00 1
06/21/1978 15:00:00 2
06/21/1978 16:00:00 3
06/21/1978 17:00:00 4
06/21/1978 18:00:00 5
06/21/1978 19:00:00 6
06/21/1978 20:00:00 7
06/21/1978 21:00:00 7
06/21/1978 22:00:00 9
06/21/1978 23:00:00 10
06/22/1978 00:00:00 5
06/22/1978 01:00:00 5
06/22/1978 02:00:00 5
06/22/1978 03:00:00 7
06/22/1978 04:00:00 8
06/22/1978 05:00:00 9
06/22/1978 06:00:00 22
06/22/1978 07:00:00 56
06/22/1978 08:00:00 9
06/22/1978 09:00:00 12
06/22/1978 10:00:00 3
06/22/1978 11:00:00 5
06/22/1978 12:00:00 7
私が望む出力は
Date value
06/21/1978 5.4
06/22/1978 11.7692307692
ベストアンサー1
これは本質的にStephaneのソリューションと同じですawk
が、Perlでコーディングされています。日付の順序が維持されます。
perl -ane 'if($.==1){print "$F[0]\t$F[2]\n"; next}
$k{$F[0]}+=$F[2]; $l{$F[0]}++;
END{print "$_\t",$k{$_}/$l{$_},"\n" for (sort keys(%k))}' data