У меня есть файл с разделителями табуляции
LOC105758527 1 55001 0.469590
LOC105758527 1 65001 0.067909
LOC105758527 1 75001 0.220712
LOC100218126 1 85001 0.174872
LOC105758529 1 125001 0.023420
NRF1 1 155001 0.242222
NRF1 1 165001 0.202569
NRF1 1 175001 0.327963
UBE2H 1 215001 0.063989
UBE2H 1 225001 0.542340
KLHDC10 1 255001 0.293471
KLHDC10 1 265001 0.231621
KLHDC10 1 275001 0.142917
TMEM209 1 295001 0.273941
CPA2 1 315001 0.181312
Мне нужно вычислить среднее значение для столбца 4 для каждого элемента в столбце 1. Таким образом, сумма / количество строк и выведите столбец 1, 2, 3 первой строки в вычислении, а среднее значение - как столбец 4.
Я начал с того, что сделал сумму
awk 'BEGIN { FS = OFS = "\t" }
{ y[$1] += $4; $4 = y[$1]; x[$1] = $0; }
END { for (i in x) { print x[i]; } }' file
Но я получаю
NRF1 1 175001 0.772754
LOC105758529 1 125001 0.02342
LOC100218126 1 85001 0.174872
KLHDC10 1 275001 0.668009
CPA2 1 315001 0.181312
TMEM209 1 295001 0.273941
UBE2H 1 225001 0.606329
LOC105758527 1 75001 0.758211
Это означает, что он переходит на какую-то строку, отличную от 1-й, в моем файле (и печатает col1,2,3 из последней вычисленной строки - это хорошо, но я бы предпочел 1-ю строку вместо этого). Выход из строя.
Я также не знаю, как разделить сумму на их NR, чтобы получить среднее значение