Объединение двух файлов одним столбцом в Unix - PullRequest
15 голосов
/ 06 марта 2012

Я хотел бы объединить два файла по одному столбцу в Unix.

У меня есть file_a:

subjectid name age  
12 Jane 16  
24 Kristen 90  
15 Clarke 78  
23 Joann 31  

У меня есть другой файл_b:

subjectid prob_disease  
12 0.009  
24 0.738  
15 0.392  
23 1.2E-5  

Я хотел бы объединить эти файлы в командной строке. Я хотел бы объединить файлы a и b по subjectid. Поскольку каждый файл имеет длину около 2 миллионов строк, я пробовал в R, но он завис из-за объема данных, может кто-нибудь помочь мне сделать это в Linux? Желаемый вывод:

subjectid prob_disease name age  
12 0.009 Jane 16  
24 0.738 Kristen 90   
15 0.392 Clarke 78  
23 1.2E-5 Joanna 31     

Пожалуйста, помогите и спасибо!

Ответы [ 2 ]

14 голосов
/ 06 марта 2012

Выезд join(1).В вашем случае вам даже не нужны флаги:

$ join file_b file_a
subjectid prob_disease name age
12 0.009 Jane 16
24 0.738 Kristen 90
15 0.392 Clarke 78
23 1.2E-5 Joann 31
2 голосов
/ 06 марта 2012

Вы ищете команду join:

$ cat test.1
12 Jane 16
24 Kristen 90
15 Clarke 78
23 Joann 31 
$ cat test.2
12 0.009
24 0.738
15 0.392
23 1.2E-5 
$ join -j1 -o 2.1,2.2,1.2,1.3  <(sort test.1) <(sort test.2)
12 0.009 Jane 16
15 0.392 Clarke 78
23 1.2E-5 Joann 31
24 0.738 Kristen 90
$ 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...