У меня есть следующая табличная разделенная таблица:
NM_000057 0
NM_000059 0
NM_000060 0
NM_000061 0
NM_000062 0
NM_000063 0
NM_000063 0
NM_000063 3
NM_000063 2
NM_000063 0
NM_000063 0
NM_000063 0
NM_000064 0
NM_000065 0
NM_000066 0
NM_000067 0
NM_000068 0
NM_000069 0
NM_000070 0
Я хочу искать первое значение, если существует больше чем один равный, я хочу объединить его и добавить значения из второго столбца. В примере:
NM_000057 0
NM_000059 0
NM_000060 0
NM_000061 0
NM_000062 0
**NM_000063 5**
NM_000064 0
NM_000065 0
NM_000066 0
NM_000067 0
NM_000068 0
NM_000069 0
NM_000070 0
Спасибо!
Недавно обнаружив GNU Датамаш , я собираюсь добавить
datamash groupby 1 sum 2 < input
, Если Ваши данные уже не отсортированы, Вы, возможно, должны добавить -s
опция, и если это разделяется другим пробелом (вместо вкладок), добавьте -W
Используйте 'awk',
awk '{seen[$1]+=$2} END{for (x in seen) print x, seen[x]}' infile > outfile
В вышеупомянутом awk команда, основная этот 'замеченный [1$] + =' часть за 2$, делают задание, переменный 1$ как ключевое поле, суммируя значение второго столбца когда подобранный замеченный ключ.
И в конце, мы - цикличное выполнение по замеченному массиву с x как переменная и печатаем ключи, замеченные в первом столбце затем результат суммы каждого ключа замеченным [x].