У меня есть два файла, как показано ниже, которые являются разделителями табуляции:добавить столбцы в AWK из двух файлов
файл А
chr1 123 aa b c d
chr1 234 a b c d
chr1 345 aa b c d
chr1 456 a b c d
....
файл B
chr1 123 aa c d e ff
chr1 345 aa e f g gg
chr1 123 aa c d e hh
chr1 567 aa z c a ii
chr1 345 bb x q r kk
chr1 789 df f g s ff
chr1 345 sh d t g ll
...
Я хочу, чтобы добавить новый столбец в файл A из файла B на основе двух ключевых столбцов «chr1», «123», т.е. (первые два столбца являются ключевыми столбцами). Если ключевые столбцы совпадают в обоих файлах, данные в столбце 7 в файле B следует добавить в столбец 3 в файле A.
Например, ключ (chr1 123) находится дважды в файле B, поэтому третий столбец в файле A имеет ff и hh, разделенные запятой. Если ключ не найден он должен поставить NA и результат должен выглядеть, как показано ниже: выхода:
chr1 123 ff,hh aa b c d
chr1 234 NA a b c d
chr1 345 gg,kk,ll aa b c d
chr1 456 NA a b c d
Я обычно делаю это в R, но это занимает огромное количество времени для больших наборов данных. Может ли кто-нибудь предоставить awk-решение для ускорения задачи?
Да, мы можем, но сначала показать ваши попытки угодить – fedorqui
хорошо, я новичок в AWK, где я могу сделать небольшой файл обработки рода вещей, но не любой реальный код , Я делаю это в R, используя функцию коллапса и не имею понятия в awk. – chas