Функция R для маркировки одной таблицы идентификатором из другой таблицы? - PullRequest
0 голосов
/ 20 апреля 2020

Это простой вопрос - но я думаю, что я, вероятно, не включаю ключевые слова в Google, чтобы найти правильный ответ, поэтому я очень сожалею об этом.

В основном у меня есть один документ Excel с примерно 10000 названий генов для некоторых растений Brassica, которые я секвенировал (в случайном порядке), и другой документ с такими же (и более) именами генов (упорядоченными), но с геном Arabidopsis, которому они соответствуют в столбце рядом с ним.

Так, например:

Файл 1:

  1. BnAxyz
  2. BnAklm
  3. BnAdef
  4. Et c ...

Файл 2:

  1. BnAab c AtAxyz
  2. BnAdef AtAypi
  3. BnAghi AtApqr

По сути, я хочу аннотировать мои секвенированные гены Brassica (файл 1) с их правильной меткой Arabidopsis (второй столбец файла 2) без изменения порядка файлов 1 (поэтому просто добавьте столбец в файл 1, но так, чтобы каждый ген соответствует своему правильному названию).

Я пытался объединить списки на R, но это не работает. Кто-нибудь знает, как я мог сделать это в R?

Большое спасибо за любую помощь.

1 Ответ

1 голос
/ 20 апреля 2020

Было бы очень полезно, если бы вы могли опубликовать код R, который вы использовали до сих пор. В отсутствие этого мы можем только догадываться, с какими типами структур данных вы на самом деле имеете дело.

В любом случае, ваша проблема должна быть решена простым способом, используя tidyverse.

Вот черновик:

library(tidyverse)

df_bras <- read_csv(
  "brassica_genes.csv", 
  col_names = c("gene_bras"), 
  col_types = "c")
df_arab <- read_csv(
  "arabidopsis_genes.csv", 
  col_name = c("gene_bras", "gene_arab"), 
  col_types = "cc")

df <- df_bras %>% left_join(df_arab, by = c("gene_bras"))

Полученный фрейм данных df будет содержать все гены Brassica и имя гена Arabidopsis (если оно присутствует в df_arab) или NA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...