处理生物学名时经常需要将学名按照意义分成几个部分, 如
- GENUS 属名
- SPECIES 种加词
- AUTHOR_OF_SPECIES 作者
- INFRASPECIFIC_RANK 种下等级
- INFRASPECIFIC_EPITHET 种下等级加词
- AUTHOR_OF_INFRASPECIFIC_RANK 种下等级作者
例如, 太白深灰槭的学名是:Acer caesium Wall. ex Brandis subsp. giraldii (Pax) E. Murr.
按照各部分的含义分开,应该是:
- 属名 GENUS: “Acer”
- 种加词 SPECIES: “caesium”
- 种作者 AUTHOR_OF_SPECIES: “Wall. ex Brandis”
- 属下等级 INFRASPECIFIC_RANK: “subsp.”
- 属下等级加词 INFRASPECIFIC_EPITHET: “giraldii”
- 属下等级作者 AUTHOR_OF_INFRASPECIFIC_RANK: “(Pax) E. Murr.”
物种的学名的拼写有以下几种情况
- 只给出属名
- 只给出属名和sp.
- 给出属名和种名, 但是未提供作者
- 给出属名, 种加词和作者
- 给出属名, 种加词, 作者, 种下等级(var.或subsp.,或f.), 种下等级加词, 种下等级作者
- 给出属名, 种加词, 种下等级(var.或subsp.,或f.), 种下等级加词, 种下等级作者
- 给出属名, 种加词, 种下等级(var.或subsp.,或f.), 种下等级加词
- 相应的程序必须考虑到以上各种情况, 并将其正确分开。
herblabel (https://github.com/helixcn/herblabel ) R 程序包提供了一个简单的生物学名处理的函数
parse_taxa(), 经过测试,在以上提到的各种情况, 均工作正常。 由于 种下等级 f. 也常用于人名, 故本程序未加入处理f.的部分。
1 | library(herblabel) |