Чтобы рассчитать среднее значение и дисперсию столбца подмножества данных, используя awk

Я хочу вычислить среднее значение и дисперсию столбца после фильтрации набора данных по другому столбцу. Например, с набором данных:

0 1
0 2
0 3
0 4
0 5
1 1
1 2
1 3
1 4
1 5
2 1
2 2
2 3
2 4
2 5

я хочу получить результат:

0 3 2.5
1 3 2.5
2 3 2.5

с классификационной переменной в первом столбце и средней дисперсией e во втором и третьем столбцах соответственно .

Вы можете мне помочь? Заранее спасибо.

0
задан 14 May 2019 в 16:36

2 ответа

Можно использовать GNU datamash:

datamash -W -g 1 mean 2 svar 2 < file

Объяснение:

  • -W Используйте пробел в качестве разделителя
  • -g 1 Группа полем 1
  • mean 2 Печать, средняя из поля 2
  • svar 2 Демонстрационное различие печати поля 2

Посмотрите больше операций здесь.


Установка datamash с apt:

sudo apt install datamash
1
ответ дан 14 May 2019 в 16:36

Используя метод Уэлфорда для вычисления дисперсии и предполагая, что дисперсии отличны от нуля (т.е. существует более одного экземпляра каждой категории): -вариант оставлен в качестве упражнения.

0
ответ дан 14 May 2019 в 16:36

Другие вопросы по тегам:

Похожие вопросы: