R语言实践——rWCVP:世界维管植物名录的R包

news2024/12/28 5:20:28

rWCVP:世界维管植物名录的R包

  • 介绍
    • 1. 参照github安装与简单例子
      • 1.1 安装rWCVP
      • 1.2 安装rWCVPdata
      • 1.3 github的例子
    • 2. rWCVP原始文献阅读
      • 2.1 前言(背景)
      • 2.2 功能概要
        • 2.2.1 名称匹配(wcvp_match_names(), wcvp_match_exact(), wcvp _match_fuzzy())
        • 2.2.2 匹配后名称解析
        • 2.2.3 空间整合和分布映射(wcvp_distribution(), wcvp_distribution_map() and wgsrpd3)
        • 2.2.4 在级别之间映射地理位置(get_wgsprd3_codes() and get_area_name())
        • 2.2.5 摘要表(wcvp_summary () and wcvp_summary_gt())
        • 2.2.6 发现记录矩阵(wcvp_occ_mat())
        • 2.2.7 生成checklist(wcvp_checklist())
      • 2.3 rWCVP应用

介绍

借用文献中的摘要来介绍一下这个包:*世界维管植物名录(World Checklist of Vascular Plants, WCVP)是非常优质的数据库资源,为植物科学、植物保护、生态和进化等领域提供了坚实基础。但是,掌握处理如此庞大复杂的数据库对许多用户来说是一项挑战。 所以,作者们推出了rWCVP,方便用户通过此开源R包对WCVP进行数据清洗等多种常用处理。这些功能包括分类名称修正、地理空间集成、映射以及以数据和报告格式生成多个不同的WCVP摘要。

1. 参照github安装与简单例子

1.1 安装rWCVP

运行下行即可

devtools::install_github("matildabrown/rWCVP")

或者

install.packages(“rWCVP”)

亦或者是
在RStudio中通过Tools的Install Packages完成下载安装

1.2 安装rWCVPdata

在运行示例时,显示rWCVPdata是必须要安装的。文献中提到了不用安装rWCVPdata的替代方法。但我还是建议将它安装下来,多学一点总是没错的。

运行下行即可

devtools::install_github("matildabrown/rWCVPdata")

1.3 github的例子

https://github.com/matildabrown/rWCVP

rWCVP 可以轻松地获取植物物种的已知分布区并绘图:

library(rWCVP)

distribution = wcvp_distribution("Myrcia guianensis", taxon_rank="species")

# global map
wcvp_distribution_map(distribution)

# zoomed-in map
wcvp_distribution_map(distribution, crop_map=TRUE)

结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. rWCVP原始文献阅读

通过阅读原始文献,我们更能理解作者推行该包的初衷,功能实现的原理和流程,为使用提供指导。相较于第3节将从阅读用户手册来了解rWCVP,本节从逻辑层面而不是操作层面为你呈现。

2.1 前言(背景)

WCVP是享誉全球的维管植物名录,该数据库持续更新。它连通的是全球植物名录(IPNI)。**最新版本中,WCVP还包含了所有物种的分布数据(精度为记录植物分布的世界地理计划的第三级)。**可以使用名称匹配来整合其他数据,并在分类学、空间学和形态学上进行分析——WCVP 还包括超过 75% 物种的生命形式数据。

WCVP中保存的分类和分布数据对于植物科学和生物多样性研究的应用很有用,但需要处理,过滤或汇总以产生有意义的输出。数据集的大小本身就限制了可用于分析它的工具 - 在 290 万行(当名称和分布组合时),WCVP 无法通过 Microsoft Excel 完全打开,因此即使是简单的过滤操作也需要一些编程技能

该包的功能有:
在这里插入图片描述

2.2 功能概要

2.2.1 名称匹配(wcvp_match_names(), wcvp_match_exact(), wcvp _match_fuzzy())

实际上,实现名称匹配,仅需要调用wcvp_match_names()即可,而wcvp_match_exact()和wcvp _match_fuzzy() 虽然也可以直接调用,但并没有必要。因为 wcvp_match_names() 的内部流程就是调用其他两个函数的一套流程:

在这里插入图片描述

2.2.2 匹配后名称解析

名称匹配是各种分析的基础步骤,因此没有一种通用的方法来解决 RWCVP 中名称匹配函数的输出。对于某些研究,可以手动检查和策划所有模糊和多个匹配,而对于其他研究,这必须通过算法完成。

为了简化此过程,RWCVP 在从“wcvp_match_names”返回的数据集中提供了其他信息

可用于解决多个匹配项的一种方法是:
(1) 如果只接受一个名称,则保留该名称并丢弃另一个名称。
(2)如果不接受任何名称,并且只有一个是同义词(相反
到非法/无效),保留一个并丢弃另一个。
(3)保留作者最相似的姓名(使用“author_edit_distance”或“author_lcs”)

但是,并非所有这些步骤都适用于任何数据集。特别是,在名称解析过程中应仔细考虑同义词的处理。

名称匹配后同义词的处理将取决于数据集和名称匹配的目的。例如,考虑一个物种名称,该名称已简化为同义词(即以前区分为两个不同物种的材料现在被视为同种)。

在这里插入图片描述

2.2.3 空间整合和分布映射(wcvp_distribution(), wcvp_distribution_map() and wgsrpd3)

rWCVP 包提供了从 WCVP 检索和绘制植物物种分布的功能。这些分布以简单的特征格式返回为WGSRPD 3级植物国家(WCVP的基本分布单位)的空间向量或多边形。请注意,尽管这些地区经常被称为“植物学国家”,但它们通常是次国家单位或与政治边界不同WGSRPD 级别 3 区域的多边形作为对象 ‘wgsrpd3’ 包含在 rWCVPDATA 包中。

“wcvp_distribution”函数检索分类单元的分布,然后可以使用“wcvp_distribution_map”绘制为范围图或用于其他分析

“wcvp_distribution_map”功能包括包括或排除每种类型(原生、引入、灭绝和可疑存在)的选项,并生成与 POWO Web 界面在美学上一致的图,其中发生类型用颜色表示。“crop_map”参数可用于缩放到分布范围。

在这里插入图片描述

2.2.4 在级别之间映射地理位置(get_wgsprd3_codes() and get_area_name())

rWCVP 中的许多功能旨在与多个 WGSRPD 植物国家/地区配合使用,但手动识别构成更广泛地理位置的三个字母代码是一项繁琐且容易出错的任务。

为了解决这个问题,我们加入了函数“get_wgsrpd3_codes”,它提取构成命名地理的一组 3 级代码。 支持的命名地理包括:WGSRPD 3 级植物国家名称(例如“塔斯马尼亚”)、2 级区域名称(例如“加勒比海”)、1 级大陆名称(例如“欧洲”)、半球(例如“南半球”)、国家(例如“南非”)和“全球”。完整的受支持地理位置集包含在数据对象“wgsrpd3_mapping”中。

调用此函数时,将显示一条消息,通知用户输入地理匹配的级别 - 某些地理位置既是国家又是地区(例如“巴西”)。如果输入地理是半球,则用户可以使用“include_equatorial”参数选择包括或排除跨越赤道的 3 级区域 - 如果未指定,则包含这些区域,并显示一条消息通知用户此行为。我们还包含了此函数的反转函数,即获取一组区号并返回地理名称的函数 - “get_area_name”。此功能可用于自动生成标题、文件名或信息性绘图标签例子参考R语言实践——rWCVP入门

2.2.5 摘要表(wcvp_summary () and wcvp_summary_gt())

**WCVP经常用于快速,清晰,简洁地探索和描述植物国家水平的物种丰富度。**我们在“wcvp_summary”中实现了此功能以执行适当的数据操作,并在“wcvp_summary_gt”中使用“GT”R包格式化此表。此函数可以按分类和地理方式过滤 WCVP,并可以提供以各种方式分组的汇总统计信息。

例如,我们可能想要确定在澳大利亚每个州发现了多少种禾本科植物,包括本地,地方,引进和灭绝物种的细分
在这里插入图片描述

2.2.6 发现记录矩阵(wcvp_occ_mat())

发现记录矩阵,其中每行是一个分类单元,每一列是一个地点/位置,对于提供物种分布摘要、生成多样性和物种丰富度指标以及分析共生模式非常有用。在 rWCVP 中,可以使用
generate_occurrence_matrix() 函数。
此函数将返回一个数据框,其中接受的物种构成行,WGSRPD 植物国家代码构成列。存在(即发现记录)用 1 表示,缺席用 0 表示。
在这里插入图片描述
调用函数时,用户可以限制矩阵的分类和地理范围,并且可以选择包括或排除每种出现类型(本地、引入、灭绝和可疑),但请注意,发现类型在输出中组合在一起。有关包括生成和格式化出现矩阵的示例工作流,请参阅rWCVP生成可发表级别的物种发现记录矩阵

2.2.7 生成checklist(wcvp_checklist())

某些目的需要比简单的汇总表或发生矩阵更多的信息。例如,标本可能标有较旧的名称,因此能够查找同义词并快速识别当前接受的名称非常有用。同样,完整的WCVP数据集很笨拙,因此我们设计了函数 “wcvp_checklist” 。此功能和输出格式基于构建
来自世界植物门户网站的清单工具

与其他功能一样,要包含在清单中的名称可以按分类学进行过滤(按物种、属、科、目或
更高分类)、地理(按植物学国家代码或使用get_wgsrpd3_codes命名地理)和分类地位(所有名称,或仅接受的名称)。
设置“render_report = TRUE”将生成格式化的 html 报告,便于打印和/或离线使用。该报告包括信息丰富的前沿内容,包括输入地理地图,植物国家代码和引文信息的关键。
在这里插入图片描述
清单本身可以用以下两种方式之一进行构建);可以使用“report_type”参数按字母顺序(按家族分组)或按分类状态(即同义词出现在其接受的名称下方)排列名称。
在这里插入图片描述
清单也可以自定义(例如,使用其他过滤器),例如使用 rWCVP 生成自定义清单

2.3 rWCVP应用

我们在上面详细介绍了 RWCVP 中特定函数的一些用法,但有很多方法可以将它们组合为更大工作流程的一部分。 汇总功能对于确定候选群体或可行性研究或保护特别有用(“使用 RWCVP 生成可发表的出现矩阵”中给出了一个例子,我们根据物种数量确定了一个属作为示例)。
RWCVP最直接和最可能影响的应用之一是确定植物多样性的重要区域,然后可以优先保护这些区域。 由于缺乏权威的、可访问的数据,植物经常被排除在保护优先计划中。具有讽刺意味的是,大量的数字可用数据现在给专注于特定国家的植物学家带来了一个问题,因为许多可用的标本数据缺乏地理参考,一些最重要的数据集甚至缺乏植物采集国的信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/563535.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT:你真的了解网络安全吗?浅谈攻击防御进行时之网络安全新定义

ChatGPT:你真的了解网络安全吗?浅谈网络安全攻击防御进行时 网络安全新定义总结 ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序,是人工智能技术驱动…

在字节跳动做了6年测试,5月无情被辞,想给划水的兄弟提个醒

先简单交代一下背景吧,某不知名 985 的本硕,17 年毕业加入字节,以“人员优化”的名义无情被裁员,之后跳槽到了有赞,一直从事软件测试的工作。之前没有实习经历,算是6年的工作经验吧。 这6年之间完成了一次…

API接口测试—详情版(拼多多根据ID取商品详情)

一、为什么要做接口测试 做接口测试的原因主要有以下几个方面: 1. 确保接口功能正确性:接口是不同软件系统或者不同模块之间的数据传输和交互的通道,通过接口测试能够确保不同系统或者模块之间传递的信息准确无误,从而保证了整个…

微信小程序点击icon实现分享功能

1.小程序分享功能实现方式 小程序分享功能有两种方式,监听用户点击页面内转发按钮( 组件 open-type“share”)或右上角菜单“转发”按钮的行为,并自定义转发内容。 使用微信小程序的分享功能需要定义onShareAppMessage(Object obj…

Java基础 变量与数据类型

变量 为什么需要变量 一花一世界,如果把一个程序看做一个世界或一个社会的话,那么变量就是程 序世界的花花草草、万事万物。即,变量是程序中不可或缺的组成单位,最基 本的存储单元。 初识变量 变量的概念 内存中的一个存储区域…

工作几年,涨薪4K遭拒,后一天我就裸辞走了···

19年7月大学毕业,当时学的计算机科学专业。因为考研之后,秋招结束了。也没什么更多的岗位选择,就想着找个工作先干着,刚好有个亲戚在一家大厂公司上班说要招测试,所以就来做测试了。 虽然都是属于计算机大类&#xff0…

chatgpt赋能Python-python_nor

了解Python NOR 在Python编程语言中,NOR运算是一种逻辑运算符,用于反转两个变量的逻辑值。它是布尔运算中的一种,通常用于检查两个条件是否都不成立。 NOR运算有两个输入和一个输出,当输入为空或两个输入都为False时&#xff0c…

nuxt视频播放(踩坑)

展示效果: nuxt样例视频 1.安装vue-video-player插件 ①执行命令 npm i vue-video-player 或者 npm i vue-video-player5.0.2 后者直接安装对应版本号的插件 ②安装完之后 执行npm i ③安装不对应的版本会报错 ④注意安装版本 不是vue3.0的 请安装(“v…

【nginx】同一接口有时返回500(client_body_temp)

问题描述: 同一个接口,有能正常访问并返回的,有的访问未到服务器直接返回500。 查看nginx日志(error.log),发现open() "/nginx/client_body_temp/0000476534" failed (13: Permission denied)报…

java的URL类

文章目录 1. 简介2. 创建URL3. 从URL获取数据4. 分解URL5. 相等性和比较 1. 简介 java.net.URL类是对统一资源定位符的抽象。它扩展了Object类,是一个final类,不能对其派生子类。它不依赖于继承来配置不同的URL实例,而使用了策略设计模式&am…

VivadoIO约束

VivadoIO约束 FPGA开发离不开IO约束和时序约束,IO约束用于确定输入/输出端口的物理端口和电气特性,与芯片和电路设计有关。而时序约束则用于设定FPGA设计中的时序特性,以确保系统能够在预期时钟频率下正常运行。本文将介绍vivado中常见的设置…

编码踩坑——Redis Pipeline中调用Lua脚本报错JedisMoveDataException的问题 / Lua脚本常遇到的问题

本篇记录使用Redis Pipeline时,调用redis.clients.jedis.PipelineBase#eval时,报错JedisMoveDataException的问题;通过查看源码发现问题的原因,通过jedis在Github的issue了解了解决方案;涉及知识:Redis slo…

FP独立站支付问题你还没解决?out了!

目前FP独立站是很多跨境卖家的变现方式,但是这类外贸电商会遇到一些收款问题,这些问题很容易就让卖家的资金被冻结、账号被风控、关联账号被限制,损失真是不小。那FP卖家的收款问题该怎么解决呢?往下看。 一、FP独立站常见收款方式…

抖音账号运营技巧,让你的短视频更火爆

抖音是目前最火爆的短视频平台之一,拥有着庞大的用户群体和广阔的市场前景。在这个平台上,每天都有大量的用户在发布自己的短视频内容,让自己的账号脱颖而出并吸引更多的粉丝,成为每个用户所追求的目标。下面就来介绍一些抖音账号…

新用户如何选择WMS仓储管理系统解决方案

引言:随着现代化物流技术的不断发展,WMS仓储管理系统已成为企业管理的重要工具。一款合适的WMS系统可以帮助企业提高库存管理效率、减少库存成本、提升物流服务质量。对于初学者来说,如何选择适合自己的WMS系统,往往是一项挑战。本…

如何做好app的测试工作?一文6个步骤到你秒变APP测试高手

先说结论: 想要做好 APP 的测试工作, 离不开相对完整的测试要点! 本篇文章不仅有完整的App测试介绍,还有相对完整的App测试视频分享。 闲话少叙, 咱们直奔主题, APP 应用测试应该主要包含以下几个方面的测试要点: 需要注意的是: APP 应用测试是个相对繁杂的测试类…

电脑远程连接软件推荐

您可以考虑使用多种可靠的计算机远程连接软件选项来远程连接和控制计算机。 以下是一些流行的选项: TeamViewer TeamViewer 是一种广泛使用的远程访问软件,以其易用性和跨平台兼容性而闻名。 它提供远程控制、文件传输和桌面共享等功能。 TeamViewer 通…

解密JavaScript混淆加密技术:揭秘隐藏的代码之谜

让我们通过一个案例来更好地理解JavaScript混淆加密的工作原理。假设我们有以下原始的JavaScript代码: function addNumbers(a, b) {return a b; }上述代码非常简单易懂,但对于一些恶意攻击者来说,他们可能会试图窃取您的代码或者修改其中的…

终身学习(LifeLong Learning)/ 增量学习(Incremental Learning)、在线学习(Online Learning)

1、在线学习 实时获得一个新样本就进行一次模型更新。显然,在线学习时增量学习的特例,而增量学习可视为“批模式”的在线/离线学习。 online主要相对于offline或者说batch,强调的是每次只进入一个或者很少的几个样本,多见于推荐…

缓存被穿透了怎么办?

首先来了解几个概念: 缓存穿透:大量请求根本不存在的key 缓存雪崩:redis中大量key集体过期 缓存击穿:redis中一个热点key过期(大量用户访问该热点key,但是热点key过期) 穿透解决方案 对空值…