程序包r不存在_用plantlist程序包查询和处理植物学名

b7f7f87463601ea083b8fd1902acb6ce.png

1 简介

plantlist是用来查询和处理植物学名的R程序包,自2013年以来,受到很多植物学和生态学很多老师和同学的关注。R软件中,类似的程序包还有 taxize (https://cran.r-project.org/web/packages/taxize/index.html)、Taxonstand(https://cran.r-project.org/web/packages/Taxonstand/index.html)等。

相比之下plantlist的主要特点在于:

  1. 使用校对过的内置数据,不需要联网

  2. 优化了查询单个物种名是否为接受名的算法,速度比taxize更快

  3. 查询结果所显示的信息更加简洁清晰

  4. 支持用中文名批量查询学名

1.1 plantlist的主要功能

  1. 批量查询植物科属,内置的数据主要来源于The Plant List网站(www.theplantlist.org/),其中被子植物采用APGIII分类系统,同时提供维管植物每个科的编号,极大方便了植物标本的管理,方便植物名录处理等。

  2. 直接生成科/属/种的列表, 以便导入Phylomatic等软件生成进化树

  3. 用中文名批量查询植物学名以及科属

  4. 查询学名的接受状态以及完整学名等

1.2 plantlist包内的函数

  • CTPL() 用中文名查询每个种的科、属、分布、海拔、IUCN等级数据

  • CTPL2() 功能与CTPL类似,但CTPL2()只读写Excel文件,而CTPL在查询时要直接输入中文字符。

  • status() 查询每个学名在The Plant List 1.1数据库中的接受状态(该数据库已经放在程序包中)

  • taxa.table() 基于TPL查询结果制作科、属、种列表, 以便用Phylomatic软件建立进化树

  • TPL() 用学名查询目、科、属以及科在分类系统中的编号

1.3 内置数据

  • acc_dat: The Plant List网站上的所有接受名

  • cnplants_dat: 《中国植物名录》及每个种的科、属、分布、海拔、中国IUCN等级以及特有性等数据

  • genera_dat: The Plantlist网站上的所有属名列表,因源数据有一些错误,绝大部分已经修订。

  • orders_dat: Angiosperm Phylogeny Website (www.mobot.org/MOBOT/research/APweb/ ) 提供的各科所属的目。

  • syn_dat: The Plant List 1.1 网站的异名数据库

2 软件安装

plantlist必须要先安装R才能使用。由于plantlist内部函数CTPL2函数需要使用openxlsx程序包读取xlsx文件,所以也要安装openxlsx所依赖的Rtools以及Rcpp,并配置好启动路径才能正常使用。

2.1 安装R软件

R软件下载的地址为:(http://cran.r-project.org/bin/windows/base/)。请尽量下载最新版本的R并按照默认路径安装。因为程序运行过程中涉及UFT8字符转换,所以R版本不能低于3.0.3。

e8d4d4aa7e8761cccddbb7b26e929e21.png

图1. R软件w

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是使用链表来管理植物信息的核心部分。下面分别介绍三个函数的作用: 函数 `ReadFile` 的作用是从指定的文件中读取数据,将植物的基本信息存入链表中。函数的参数是一个指向链表头结点的指针 `L` 和一个字符串 `filename`,表示要读取的文件名。函数的实现可以参考下面的伪代码: ``` 1. 打开文件 filename 2. 如果文件打开失败,返回 3. 新建一个链表头结点 L,并将 L->next 指向 NULL 4. 读取文件中的每一行数据 5. 对于每一行数据,解析出植物的基本信息,并新建一个链表结点存储这些信息 6. 将新建的链表结点插入到链表 L 的末尾 7. 关闭文件 ``` 函数 `InPlant` 的作用是判断指定的植物名称是否存在于链表中。函数的参数是一个指向链表头结点的指针 `L` 和一个字符串 `name`,表示要查找的植物名称。函数的实现可以参考下面的伪代码: ``` 1. 从链表头结点 L 的下一个结点开始遍历链表 2. 对于每个链表结点,比较其植物名称是否等于 name 3. 如果找到了相同名称的植物,返回该结点在链表中的位置(从 1 开始计数) 4. 如果遍历完链表都没有找到相同名称的植物,返回 0 ``` 函数 `InsertPlant` 的作用是增加植物信息,将植物的基本信息添加到指定文件的最后。函数的参数是一个指向链表头结点的指针 `L` 和一个字符串 `filename`,表示要写入的文件名。函数实现的步骤如下: ``` 1. 打开文件 filename,并将文件指针移动到文件末尾 2. 读取文件中的每一行数据,检查植物名称是否与要插入的植物名称相同 3. 如果存在相同名称的植物,关闭文件并返回 false 4. 否则,将植物的基本信息写入文件,并在链表 L 中插入一个新的结点 5. 关闭文件并返回 true ``` 需要注意的是,实际编写代码时需要对函数的实现进行更加详细的设计,包括异常处理、数据格式检查等。同时也需要注意内存管理,避免造成内存泄漏等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值