Слияние файлов в R и сохранение столбца, на котором я делаю совпадение? - PullRequest
0 голосов
/ 17 января 2019

У меня есть две огромные таблицы данных:

> head(x)
          gene_id chr  min_POS  max_POS     rs_id pvalue_G pvalue_E     metaP
1 ENSG00000047849   3 47568061 48143776  rs319690   0.7139   0.8613 0.7019270
2 ENSG00000047849   3 47568061 48143776 rs4392441   0.5452   0.7074 0.4881783
3 ENSG00000047849   3 47568061 48143776 rs4858887   0.5435   0.7074 0.4870446
4 ENSG00000047849   3 47568061 48143776 rs7651237   0.8621   0.6440 0.6529929
5 ENSG00000047849   3 47568061 48143776 rs6803741   0.5436   0.6612 0.4596804
6 ENSG00000047849   3 47568061 48143776 rs4858881   0.6142   0.6833 0.5189457
...

> head(b)
          V2        V3    V4 V5 V6
1: 194857581 194857582 rs224  0  -
2: 194857560 194857561 rs225  0  -
3:   7864903   7864904 rs226  0  +
4:   7864919   7864920 rs227  0  +
5:   5558441   5558442 rs228  0  +
6: 137923628 137923629 rs229  0  +
...

Я пытаюсь объединить их, используя:

x1=merge(b, x, by.x = "V4", by.y="rs_id")

проблема в том, что я хотел бы сохранить все V4 и rs_id, с которыми я сливался. Это слияние дало мне 89 строк в x1, и я хотел бы иметь дополнительный столбец, в котором были бы все соответствующие V4 и rs_id.

Кроме того, файл b огромен, поэтому приветствуется любой более эффективный способ.

В основном мне нужно сопоставить x и b на V4 и rs_id и столбцах, которые мне нужно сохранить в конечном кадре данных: gene_id, chr, rs_id (совпал), pvalue_G, pvalue_E, V2, V3.

1 Ответ

0 голосов
/ 17 января 2019

Попробуйте пакет dplyr для этого. Я делаю это, как мы надеемся, реальный код, но не запускал его, так как у меня нет фреймов данных.

Обычно мы выполняем внутреннее соединение с x и b (сохраняя только строки с совпадающими rs_ID и V4), а затем выбираем нужные столбцы.

библиотека (dplyr)

x %>%
  inner_join(b, by = c("rs_id" = "V4")) %>%
  select(gene_id, chr, rs_id, pvalue_G, pvalue_E, V2, V3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...