Мне нужно найти, какие строки df1 присутствуют в df2, извлекая слова после "gene_id" в df1 $ Id и ища их в двух разных столбцах df2 (df2 $ Gene.id, df2 $ Gene.name ).
Вот как выглядят мои данные:
df1 <- data_frame(
Chr = c("NC_035077.1", "NC_035078.1", "NC_035083.1", "NC_035083.1", "NC_035084.1", "NC_035084.1", "NC_035088.1"),
Pos = c("61344375", "78462810", "24378412", "24387264","66360216", "66360385","40131947"),
Var=c("tco","born", "tco","tco", "born","tco","tco"),
Id=c("gene_id calm2", "gene_id LOC110500174", "gene_id ahcy", "gene_id ahcy", "gene_id cebpd", "gene_id cebpd", "gene_id LOC110537636, gene_id hsc70a")
)
df1
Chr Pos Var Id
<chr> <chr> <chr> <chr>
1 NC_035077.1 61344375 tco gene_id calm2
2 NC_035078.1 78462810 born gene_id LOC110500174
3 NC_035083.1 24378412 tco gene_id ahcy
4 NC_035083.1 24387264 tco gene_id ahcy
5 NC_035084.1 66360216 born gene_id cebpd
6 NC_035084.1 66360385 tco gene_id cebpd
7 NC_035088.1 40131947 tco gene_id LOC110537636, gene_id hsc70a
df2 <- data_frame(
Gene.id = c("LOC110488122", "NA", "LOC110490243", "LOC110537256", "LOC100136165", "LOC100379112", "LOC100379114", "LOC110527949", "LOC110537636"),
Gene.name = c("agr2", "agrn", "ahcy", "akap1","cebpb", "cebpb","cebpd", "ddost","slc6a13")
)
df2
Gene.id Gene.name
<chr> <chr>
1 LOC110488122 agr2
2 NA agrn
3 LOC110490243 ahcy
4 LOC110537256 akap1
5 LOC100136165 cebpb
6 LOC100379112 cebpb
7 LOC100379114 cebpd
8 LOC110527949 ddost
9 LOC110537636 slc6a13
Как вы можете видеть, у некоторых идентификаторов df1 $ есть два gene_id, мне нужно проверить их оба в df2, и какой из они совпадают с df2 $ Gene.id или df2 $ Gene.name, мне нужно включить эту строку в выходной файл. Также в df2 есть несколько НА.
Мой результат должен выглядеть так:
Chr Pos Var Id Gene.id Gene.name
NC_035083.1 24378412 tco gene_id ahcy LOC110490243 ahcy
NC_035083.1 24387264 tco gene_id ahcy LOC110490243 ahcy
NC_035084.1 66360216 born gene_id cebpd LOC100379114 cebpd
NC_035084.1 66360385 tco gene_id cebpd LOC100379114 cebpd
NC_035088.1 40131947 tco gene_id LOC110537636, gene_id hsc70a LOC110537636 slc6a13
Мы будем очень признательны за любую помощь в том, как этого добиться.