首页 > 解决方案 > 如何连接在 R 中产生重复的列

问题描述

我从更大的数据框中获取了以下数据:

structure(list(ensembl_gene_id = c("ENSMUSG00000000486", "ENSMUSG00000000486", 
"ENSMUSG00000000562", "ENSMUSG00000000562", "ENSMUSG00000001768", 
"ENSMUSG00000001768"), entrezgene_id = c(54204L, 100043580L, 
11542L, 69296L, 74030L, 408057L), external_gene_name = c("Septin1", 
"Septin1", "Adora3", "Adora3", "Rin2", "Rin2"), description = c("septin 1 [Source:MGI Symbol;Acc:MGI:1858916]", 
"septin 1 [Source:MGI Symbol;Acc:MGI:1858916]", "adenosine A3 receptor [Source:MGI Symbol;Acc:MGI:104847]", 
"adenosine A3 receptor [Source:MGI Symbol;Acc:MGI:104847]", "Ras and Rab interactor 2 [Source:MGI Symbol;Acc:MGI:1921280]", 
"Ras and Rab interactor 2 [Source:MGI Symbol;Acc:MGI:1921280]"
), n = c(2L, 2L, 2L, 2L, 2L, 2L)), row.names = c(NA, 6L), class = "data.frame")

取自较大的数据框,使用:

dpulicate_entrez <- annot %>%  
  add_count(ensembl_gene_id) %>%  
  filter(n>1)

一些基因有多个entrezgene_id。如何连接更大的数据框,这样我就没有重复的 ensembl_gene_id,但在 entrez_id 列中可以有多个 entrez ID。

例如,第一个 ensembl_gene_id 有 2 个重复项,因为我有 2 个 entrez_id。如何使我的数据框如下所示,这样我就不会得到 ensembl_gene_id 重复项:

ensembl_gene_id entrezgene_id external_gene_name                                                  description
1 ENSMUSG00000000486         54204;100043580            Septin1                 septin 1 [Source:MGI Symbol;Acc:MGI:1858916]

这可以使用 dplyr 完成吗?

标签: r

解决方案


推荐阅读