You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言基于唯一ENSG ID去除基因列表重复条目问题咨询

解决方案

通用ENSG_ID去重方法

直接将duplicated()函数作用于ENSG_ID列即可实现按唯一ENSG ID去重,默认会保留每个ENSG ID第一次出现的条目:

# 保留每个ENSG_ID第一次出现的非重复条目
annotation1 <- annotation1[!duplicated(annotation1$ENSG_ID), ]

如果使用tidyverse生态的dplyr包,也可以用更简洁的写法:

library(dplyr)
annotation1 <- annotation1 %>% 
  distinct(ENSG_ID, .keep_all = TRUE)

优先保留指定ENSG对应条目的定制化去重

如果你需要明确保留ENSG00000187134对应的AKRC1条目,可先对数据集做优先级排序,让目标条目排在对应ENSG ID的第一位,去重时就会自动保留目标条目:

library(dplyr)
annotation1 <- annotation1 %>%
  # 构造优先级字段:目标条目优先级设为1,其余为2
  mutate(priority = ifelse(ENSG_ID == "ENSG00000187134" & GeneSymbol == "AKRC1", 1, 2)) %>%
  # 按优先级升序排列,目标条目会排在最前
  arrange(priority) %>%
  # 按ENSG_ID去重,保留第一个出现的条目
  distinct(ENSG_ID, .keep_all = TRUE) %>%
  # 移除辅助的优先级字段
  select(-priority)

注意事项

  • 去重前建议先统计重复的ENSG ID数量,确认是否符合预期:sum(duplicated(annotation1$ENSG_ID))
  • 如果存在ENSG_ID为空的条目,建议先过滤空值再执行去重,避免误删

内容的提问来源于stack exchange,提问作者Jessica GARCIA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 15:06:01