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

关于统一多来源物种名称的技术咨询

关于统一多来源物种名称的技术咨询

嘿,我明白你现在的困扰——从不同来源收集的物种名称格式太乱了,同一物种有好几种写法,得统一成标准名对吧?结合你给的示例数据,我给你整理了几个在R里能快速解决的方案:

先确认你的原始数据

你提供的数据集结构是这样的:

dat <- structure(list(
  Species = c("A. thaliana","Arabidopsis.thaliana","ARABIDOPSIS Thaliana",
              "Pisum.sativum","P. Sativum","PISUM SATIVUM",
              "B. Vulgaris","BETA VULGARIS","Beta.vulgaris",
              "Secale.cereale","S. CEREALE","SECALE CEREALE"),
  Position = c("C1","C2","C3","D1","D2","D3","F1","F2","F3","G1","G2","G3")
))
dat <- data.frame(dat)

解决方案1:用正则表达式批量匹配(推荐,扩展性强)

这种方法不用逐个枚举所有变体,通过忽略大小写的正则匹配,自动把同一物种的不同写法映射到你指定的标准名:

library(dplyr)

dat_cleaned <- dat %>%
  mutate(Standard_Species = case_when(
    # 匹配所有拟南芥的变体(不管大小写、缩写)
    grepl("arabidopsis|A\\. thaliana", Species, ignore.case = TRUE) ~ "Arabidopsis.thaliana",
    # 匹配所有豌豆的变体
    grepl("pisum|P\\. Sativum", Species, ignore.case = TRUE) ~ "Pisum.sativum",
    # 匹配所有甜菜的变体
    grepl("beta|B\\. Vulgaris", Species, ignore.case = TRUE) ~ "Beta.vulgaris",
    # 匹配所有黑麦的变体
    grepl("secale|S\\. CEREALE", Species, ignore.case = TRUE) ~ "Secale.cereale",
    # 兜底:如果遇到未匹配的新物种,保留原名称
    TRUE ~ Species
  ))

# 查看清洗后的结果
print(dat_cleaned)

运行后你会看到所有同物种的名称都统一成了你指定的标准格式,比如C1、C3的拟南芥都会变成Arabidopsis.thaliana。

解决方案2:创建精确映射字典(适合严格控制标准名的场景)

如果你已经明确知道每个变体对应的标准名,可以先做一个映射字典,直接替换:

# 创建物种名称映射字典,键是原始变体,值是标准名
species_mapping <- c(
  "A. thaliana" = "Arabidopsis.thaliana",
  "ARABIDOPSIS Thaliana" = "Arabidopsis.thaliana",
  "P. Sativum" = "Pisum.sativum",
  "PISUM SATIVUM" = "Pisum.sativum",
  "B. Vulgaris" = "Beta.vulgaris",
  "BETA VULGARIS" = "Beta.vulgaris",
  "S. CEREALE" = "Secale.cereale",
  "SECALE CEREALE" = "Secale.cereale"
)

# 替换原物种名称,已经是标准名的会自动保留(因为字典里没有对应的键,返回NA,用ifelse处理)
dat$Standard_Species <- ifelse(is.na(species_mapping[dat$Species]), dat$Species, species_mapping[dat$Species])

# 查看结果
print(dat)

额外小贴士

如果你的物种数量非常多,或者需要更专业的分类学标准化,可以试试R的生物信息学专用包taxize——它能调用NCBI、GBIF等权威数据库,自动匹配并校正物种名称,还能补充分类学层级信息,非常实用。

备注:内容来源于stack exchange,提问作者SAL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:59:34