Python или R. Соедините фреймы данных A и B двумя столбцами.Если совпадений нет, выведите значение в строке A непосредственно перед - PullRequest
0 голосов
/ 23 мая 2019

Я бы хотел сделать следующее, используя Python или R. У меня есть файл A, который выглядит следующим образом:

CHR POS rec_rate gen_map
1 723819 2.8222713027 0.417429561063975
1 723891 2.9813105581 0.417644215424158
1 728242 2.9806151254 0.430612871834774
1 729948 3.0780969498 0.435864105231133
1 740857 3.075133293 0.46941073432447

и файл B, который выглядит следующим образом:

CHR POS X Y
1 723891 44.5 2.3
1 724500 40.1 3.4
1 730000 30.0 2.6
1 740857 35.6 3.1

Я хочу сделать вид left_join между B и A, соединяясь столбцами «CHR» и «POS» следующим образом:

Для каждой строки в B, если столбцы CHR и POS соответствуют столбцамCHR и POS в A, выведите всю строку A, добавив соответствующие столбцы X и Y из B. Иначе, выведите строку с «rec_rate», чье POS находится в строке непосредственно перед в A. Например, так как POS = 730000из B не соответствует POS в A, скрипт выведет rec_rate = 3.0780969498 и gen_map = 0.435864105231133, соответствующий POS = 729948 из A.

Я ожидаю получить это:

CHR POS rec_rate gen_map X Y 
1 723819 2.8222713027 0.417429561063975 44.5 2.3
1 724500 2.9813105581 0.417644215424158 40.1 3.4
1 730000 3.0780969498 0.435864105231133 30.0 2.6
1 740857 3.075133293 0.46941073432447 35.6 3.1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...