按名称匹配行

时间:2019-12-23 17:05:52

标签: python r data-science bioinformatics

我有2个数据集(基因名称的列表/列),例如:

df1

Gene_id
SUMO2
CDC37
COPB2
BECN1
CAPNS1

df2

Gene_id
SUMO2
BECN1
CAPNS1

我想创建一个新的数据集,其中包含2列基因名称匹配的列。第1列中的所有df1基因都与第1个匹配,而所有df2基因的第2个在第1列中都匹配。在第2列没有匹配的NA中,如下所示。最好在R或Python中使用dplyr。谢谢

Gene_id Gene_id
SUMO2   SUMO2
CDC37   NA
COPB2   NA
BECN1   BECN1
CAPNS1  CAPNS1

2 个答案:

答案 0 :(得分:2)

    df1 %>%
      mutate(Gene_id_2 = ifelse(Gene_id %in% df2$Gene_id, as.character(Gene_id), NA)) #as.character in case you deal with factors

# Gene_id Gene_id_2
# 1   SUMO2     SUMO2
# 2   CDC37      <NA>
# 3   COPB2      <NA>
# 4   BECN1     BECN1
# 5  CAPNS1    CAPNS1

答案 1 :(得分:1)

我们可以使用%in%

i1 <- df1$Gene_id %in% df2$Gene_id
df1$newGene_id[i1] <- df1$Gene_id[i1]