Ответ 1
Awk:
awk '{ total += $2 } END { print total/NR }' yourFile.whatever
Читайте как:
- Для каждой строки добавьте столбец 2 к переменной "total".
- В конце файла напечатайте "total", деленное на количество записей.
Кто-нибудь знает, как я могу вычислить среднее значение одного из этих столбцов (по linux)?
sda 2.91 20.44 6.13 2.95 217.53 186.67 44.55 0.84 92.97
sda 0.00 0.00 2.00 0.00 80.00 0.00 40.00 0.22 110.00
sda 0.00 0.00 2.00 0.00 144.00 0.00 72.00 0.71 100.00
sda 0.00 64.00 0.00 1.00 0.00 8.00 8.00 2.63 10.00
sda 0.00 1.84 0.31 1.38 22.09 104.29 74.91 3.39 2291.82
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Например: среднее (столбец 2)
Awk:
awk '{ total += $2 } END { print total/NR }' yourFile.whatever
Читайте как:
Решение Perl:
perl -lane '$total += $F[1]; END{print $total/$.}' file
-a
autosplits строка в массив @F, который индексируется начиная с 0 $.
- номер строки
Если ваши поля разделяются запятыми, а не пробелами:
perl -F, -lane '$total += $F[1]; END{print $total/$.}' file
Чтобы напечатать средние значения всех столбцов, присвойте итоговые значения массиву @t:
perl -lane 'for $c (0..$#F){$t[$c] += $F[$c]}; END{for $c (0..$#t){print $t[$c]/$.}}'
выход:
0
0.485
14.38
1.74
0.888333333333333
77.27
49.8266666666667
39.91
1.29833333333333
434.131666666667
Вы можете использовать python для этого, он доступен в Linux.
Если это происходит из файла, посмотрите question, вместо этого используйте float.
Например:
#mean.py
def main():
with open("mean.txt", 'r') as f:
data = [map(float, line.split()) for line in f]
columnTwo = []
for row in data:
columnTwo.append( row[1] )
print sum(columnTwo,0.0) / len( columnTwo )
if __name__=="__main__":
main()
Печать 14.38
Я просто включаю данные в файл mean.txt, а не заголовок строки: "sda"
Давид Заславский для удовольствия:
with open("mean.txt", 'r') as f:
n,t = map(sum, zip(*((1, float(line.split()[1])) for line in f)))
print t/n
Simple-r рассчитает среднее значение со следующей строкой:
r -k2 mean file.txt
для второго столбца. Он также может выполнять гораздо более сложный статистический анализ, поскольку он использует среду R для всего своего статистического анализа.