R 基于查找表中的搜索向数据框添加新的基因名称列

R 基于查找表中的搜索向数据框添加新的基因名称列,r,dataframe,R,Dataframe,我对R的工作非常陌生,昨天的大部分时间都在试图从其他问题和指南中找到答案,但没有走多远 我有一个带有转录本id的RNA序列表达值表(例如TraesCS5B02G127900.1)。 我想在这个表中添加一个新的列,搜索转录本id(例如TraesCS5B02G127900)中基因id的查找表,并在新列中添加相应的gene.name(例如ENA1)和gene_id 这是我的表达式表的一部分(包含更多行): 这是我的查找表的一部分,其中包含我的gene\u id和gene.names(再次包含更多行):

我对R的工作非常陌生,昨天的大部分时间都在试图从其他问题和指南中找到答案,但没有走多远

我有一个带有转录本id的RNA序列表达值表(例如TraesCS5B02G127900.1)。 我想在这个表中添加一个新的列,搜索转录本id(例如TraesCS5B02G127900)中基因id的查找表,并在新列中添加相应的gene.name(例如ENA1)和gene_id

这是我的表达式表的一部分(包含更多行):

这是我的查找表的一部分,其中包含我的gene\u id和gene.names(再次包含更多行):

我想创建一个新表,通过搜索转录本idGene.nameGene\u id列添加到表达式表中,其中包含Gene\u id

例如,这就是我希望它看起来的样子:

   Gene.name            gene_id            target_id sigma_sq_pmax   iqr failed_ise
1     OsZIP5 TraesCS1B02G306500 TraesCS1B02G306500.1    0.92592155  TRUE      FALSE
2    OsABCC1 TraesCS1B02G433800 TraesCS1B02G433800.1    0.00000000 FALSE      FALSE
3     OsYSL6 TraesCS2A02G284700 TraesCS2A02G284700.1    0.00000000 FALSE      FALSE
4     OsVIT1 TraesCS2A02G336600 TraesCS2A02G336600.1    0.01582308 FALSE      FALSE
5    OsYSL16 TraesCS2A02G390800 TraesCS2A02G390800.1    0.22361394 FALSE      FALSE
6     OsYSL9 TraesCS2A02G391000 TraesCS2A02G391000.1    0.46099961  TRUE      FALSE
7     OsYSL9 TraesCS2A02G391000 TraesCS2A02G391000.2    4.37886316 FALSE      FALSE
8     OsYSL9 TraesCS2A02G391000 TraesCS2A02G391000.3    0.00000000 FALSE      FALSE
9     OsHMA5 TraesCS2A02G410400 TraesCS2A02G410400.1    0.00000000 FALSE      FALSE
10    OsZIP3 TraesCS2A02G424200 TraesCS2A02G424200.2    0.38312110  TRUE      FALSE

我非常感谢在这方面的任何帮助,谢谢:)

A
tidyverse
方法看起来可能是这样的。第一步涉及使用
tidyr::separate
在包含
基因id
的列中分离
转录本id
,并在
后面分离
号。在第二步中,您可以通过
gene\u id
使用
dplyr::left\u join
连接表达式并查找表。然而,
Gene.name
列只包含
NA
s,因为在给定的示例数据中不匹配

库(dplyr)
图书馆(tidyr)
表达式\u表%>%
tidyr::separate(转录本id,into=c(“基因id”,“否”),sep=“\\.”,remove=FALSE)%>%
dplyr::左连接(查找表)
#>连接,通过=c(“行”,“基因id”)
#>警告:列'gene_id'连接字符向量和因子,强制为
#>特征向量
#>行转录本\u id基因\u id no sigma\u sq\u pmax iqr
#>1 1 TraesCS1B02G306500.1 TraesCS1B02G306500 1 0.92592160正确
#>2 2个TraesCS1B02G433800.1 TraesCS1B02G433800 1 0.00000000错误
#>3 3 Traescs2ga0284700.1 Traescs2ga0284700 1 0.00000000错误
#>4 4 TRAESCS2G02G336600.1 TRAESCS2G02G336600 1 0.01582308错误
#>5 5个TRAESCS2G02G390800.1 TRAESCS2G02G390800 1 0.22361390错误
#>6 6 TRAESCS2G02G391000.1 TRAESCS2G02G391000 1 0.4609960正确
#>7 7 TRAESCS2G02G391000.2 TRAESCS2G02G391000 2 4.37886300错误
#>8 8 TRAESCS2G02G391000.3 TRAESCS2G02G391000 3 0.00000000错误
#>9 9 TRAESCS2G0410400.1 TRAESCS2G02G410400 1 0.00000000错误
#>10 10 TRAESCS2G02G424200.2 TRAESCS2G02G424200 2 0.38312110正确
#>失败。\u ise Gene.name
#>1错误
#>2错误
#>3错误
#>4错误
#>5错误
#>6错误
#>7错误
#>8错误
#>9错误
#>10错误

由(v0.3.0)于2020-04-18创建

如果我没有错,那么在查找表或表达式表中都没有值作为
OsZIP5
!那么,
Gene.name
专栏从哪里来?这正是我想要的,非常感谢!我会去读更多关于tidyr和dplyr的文章:)
           Gene.name            gene_id
1               ENA1 TraesCS5B02G127900
2               ENA1 TraesCS5D02G136800
3               ENA1 TraesCS5A02G129300
4  ENA2/OS10G0434900 TraesCS7A02G427700
5  ENA2/OS10G0434900 TraesCS4A02G414400
6  ENA2/OS10G0434900 TraesCS4B02G315100
7  ENA2/OS10G0434900 TraesCS4D02G332100
8  ENA2/OS10G0434900 TraesCS4B02G336400
9  ENA2/OS10G0434900 TraesCS7D02G420100
10 ENA2/OS10G0434900 TraesCS7B02G327900
   Gene.name            gene_id            target_id sigma_sq_pmax   iqr failed_ise
1     OsZIP5 TraesCS1B02G306500 TraesCS1B02G306500.1    0.92592155  TRUE      FALSE
2    OsABCC1 TraesCS1B02G433800 TraesCS1B02G433800.1    0.00000000 FALSE      FALSE
3     OsYSL6 TraesCS2A02G284700 TraesCS2A02G284700.1    0.00000000 FALSE      FALSE
4     OsVIT1 TraesCS2A02G336600 TraesCS2A02G336600.1    0.01582308 FALSE      FALSE
5    OsYSL16 TraesCS2A02G390800 TraesCS2A02G390800.1    0.22361394 FALSE      FALSE
6     OsYSL9 TraesCS2A02G391000 TraesCS2A02G391000.1    0.46099961  TRUE      FALSE
7     OsYSL9 TraesCS2A02G391000 TraesCS2A02G391000.2    4.37886316 FALSE      FALSE
8     OsYSL9 TraesCS2A02G391000 TraesCS2A02G391000.3    0.00000000 FALSE      FALSE
9     OsHMA5 TraesCS2A02G410400 TraesCS2A02G410400.1    0.00000000 FALSE      FALSE
10    OsZIP3 TraesCS2A02G424200 TraesCS2A02G424200.2    0.38312110  TRUE      FALSE