我有下面的輸入,如果「Cpd_number」和「ID3」是相同的,我想做幾何平均值。這些文件有很多數據,所以我們可能需要數組來完成這些技巧。然而,作爲awk初學者,我不太確定如何開始。任何人都可以提供一些提示嗎?awk幾何平均值在同一行值
輸入:
「95」的「ID1」,「Cpd_number」, 「ID2」,」ID3」,」activity」
「95」,「123」,」4」,」5」,」10」
「95」, 「123」,」4」,」5」,」100」
「95」, 「123」,」4」,」5」,」1」
「95」, 「123」,」4」,」6」,」10」
「95」, 「123」,」4」,」6」,」100」
「95」, 「456」,」4」,」6」,」10」
「95」, 「456」,」4」,」6」,」100」
三行,「123」,」 4」 ,」 5」 應該做的‘95’的幾何平均
兩行,‘123’ ,」 4」 ,」 6」 應該做‘95’的幾何平均
兩行,‘456’,」 4」 ,」 6」 應該做一個幾何平均
這裏是所期望的輸出:
「ID1」,「Cpd_number」, 「ID2」,」ID3」,」activity」
「95」,「123」,」4」,」5」,」10」
「95」, 「123」,」4」,」6」,」31.62」
「95」, 「456」,」4」,」6」,」31.62」
約幾何平均的一些信息:
http://en.wikipedia.org/wiki/Geometric_mean
這個腳本計算幾何平均值
#!/usr/bin/awk -f
{
b = $1; # value of 1st column
C += log(b);
D++;
}
END {
print "Geometric mean : ",exp(C/D);
}
答覆已更新。 – klashxx