万字长文介绍R package “vegan”——入门学习与重复文献数据

news2025/6/18 21:19:17

vegan介绍与入门

vegan是一个用于群落生态学(community ecology)分析的包,可以进行排序、多样性和差异性分析(ordination, diversity and dissimilarity)。

vegan包含了多样性分析排序方法差异性分析的工具。

示例一:unconstrained analysis(非约束排序)

### example1: unconstrained analysis
## NMDS
library(vegan)

data(varespec)
data("varechem")

ord = metaMDS(varespec)
plot(ord, type = "t")

# fit environmental variables
ef = envfit(ord, varechem)
ef
plot(ef, p.max = 0.05)

在这里插入图片描述

> ef

***VECTORS

            NMDS1    NMDS2     r2 Pr(>r)    
N        -0.05729 -0.99836 0.2536  0.035 *  
P         0.61969  0.78484 0.1938  0.108    
K         0.76642  0.64234 0.1809  0.109    
Ca        0.68517  0.72838 0.4119  0.004 ** 
Mg        0.63250  0.77456 0.4270  0.002 ** 
S         0.19135  0.98152 0.1752  0.119    
Al       -0.87162  0.49019 0.5269  0.001 ***
Fe       -0.93604  0.35190 0.4450  0.002 ** 
Mn        0.79872 -0.60171 0.5231  0.001 ***
Zn        0.61754  0.78654 0.1879  0.109    
Mo       -0.90308  0.42948 0.0609  0.526    
Baresoil  0.92491 -0.38019 0.2508  0.045 *  
Humdepth  0.93284 -0.36029 0.5200  0.001 ***
pH       -0.64800  0.76164 0.2308  0.061 .  
---
Signif. codes:  
0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
Permutation: free
Number of permutations: 999

示例二:constrainted analysis(约束排序)

### example2: constrained ordination (RDA)
## the example uses formula interface to define the modle

library(vegan)

data("dune")
data("dune.env")

# no constraints: PCA
mod0 = rda(dune ~ 1, dune.env)
mod0
plot(mod0)

# all environmental variables: Full model
mod1 = rda(dune ~ ., dune.env)
mod1
plot(mod1)

# automatic selection of variables by permutation P-values
mod = ordistep(mod0, scope=formula(mod1))
mod
plot(mod)

# permutation test for all variables
anova(mod)

# permutation test of "type Ⅲ" effects, or significance when a term is added to the model after all other terms
anova(mod, by = "margin")

#  Plot only sample plots, use different symbols and draw SD ellipses  for Managemenet classes
plot(mod, display = "sites", type = "n")
with(dune.env, points(mod, disp = "si", pch = as.numeric(Management)))
with(dune.env, legend("topleft", levels(Management), pch = 1:4, title = "Management"))
with(dune.env, ordiellipse(mod, Management, label = TRUE))

# add fitted surface of diversity to the model
ordisurf(mod, diversity(dune), add = TRUE)

在这里插入图片描述

示例三: analysis of dissimilarities(差异性分析)

### Example 3: analysis of dissimilarites a.k.a. non-parametric
### permutational anova

library(vegan)

data("dune")
data("dune.env")

adonis2(dune ~ ., dune.env)
adonis2(dune ~ Management + Moisture, dune.env)

在这里插入图片描述

文献数据复现

原文方法如下:… carried out NMDS with the metaMDS functioin and Gower’s Distance as the dissimilarity metric in the VEGAN package in R.

如此可知,我需要使用metaMDS函数并使用Gower’s Distance完成NMDS分析

在操作前,我需要知道metaMDS函数和Gower’s Distance在vegan里分别是什么、如何使用?

metaMDS函数

Nonmetric Multidimensional Scaling with Stable Solution from Random Starts, Axis Scaling and Species Scores

大致意思是:通过随机开始、坐标轴缩放及物种评分来获得可靠的结果,这就是非度量多维测度。非度量多维测度是一种适用于非线性数据结构分析的复杂的迭代排序方法。在此不多描述。

metaMDS函数的用法

  1. metaMDS(comm, distance = "bray", k = 2, try = 20, trymax = 20, engine = c("monoMDS", "isoMDS"), autotransform =TRUE, noshare = (engine == "isoMDS"), wascores = TRUE, expand = TRUE, trace = 1, plot = FALSE, previous.best, ...)

  2. plot(x, display = c("sites", "species"), choices = c(1, 2), type = "p", shrink = FALSE, ...)

  3. points(x, display = c("sites", "species"), choices = c(1,2), shrink = FALSE, select, ...)

  4. text(x, display = c("sites", "species"), labels, choices = c(1,2), shrink = FALSE, select, ...)

  5. scores(x, display = c("sites", "species"), shrink = FALSE, choices, tidy = FALSE, ...)

  6. metaMDSdist(comm, distance = "bray", autotransform = TRUE, noshare = TRUE, trace = 1, commname, zerodist = "ignore", distfun = vegdist, ...)

  7. metaMDSiter(dist, k = 2, try = 20, trymax = 20, trace = 1, plot = FALSE, previous.best, engine = "monoMDS", maxit = 200, parallel = getOption("mc.cores"), ...)

  8. initMDS(x, k=2) postMDS(X, dist, pc=TRUE, center=TRUE, halfchange, threshold=0.8, nthreshold=10, plot=FALSE, ...)

  9. metaMDSredist(object, ...)

我要使用的是第一个用法,下面了解以下metaMDS函数的参数

metaMDS函数的参数

参数含义
comm数据(community data)
distance差异性分析参数
k维度数
try,trymax随机迭代的最小和最大次数
engine默认为monoMDS
autofransform如果没有群落数据,该项应设置为FALSE
noshareTRUE/FLASE
wascross使用wascross函数计算物种分值
expand在wascross函数中延伸物种的权重均值
trace追踪函数
plot图形化展示追踪过程:绘制中间过程
previous.best从上一次结果处开始分析
xmetaMDS结果
choices轴线展示
type图形类型:"p"表示点,"t"表示文本,"n"表示轴线
display展示“sites”或“species”
shrink如果expand了,便会收缩
tidy返回ggplot2可以使用的分值数据
labels更改行名
select挑选展示的条目
X多维测度的配置
commnamecomm的名称
zerodist零差异的处理:‘fail’、‘add’、‘ignore’
distfun相异度函数
maxit单次NMDS迭代的最大次数
parallel并行线程
dist相异度矩阵在多维标度中的应用
pc旋转到主成分
center中心配置
halfchange将坐标轴刻度为半可变单位
threshold在半变化缩放中使用的最大差异
nthreshold半变化缩放中的最小点数
object一个来自metaMDS的结果对象

metaMDS函数的官方示例

## The recommended way of running NMDS (Minchin 1987)

library(vegan)
data("dune")

## IGNORE_RDIFF_BEGIN
## Global NMDS using monoMDS
sol = metaMDS(dune)
sol
plot(sol, type = "t")
plot(sol, type = "p")

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

复现文献结果

数据准备

文件以上传,请自行下载。

NMDS分析

library(vegan)
library(openxlsx)

metrix = read.xlsx("D:/ALL_Softwares/R-4.2.0/library/vegan/2023Deanna.xlsx", 1,)

# tranform char to num, beacause xlse datatype are chars.
for (i in (2:ncol(metrix))){
  metrix[,i] = as.numeric(metrix[,i])
}

# drop NAs
metrix = metrix[complete.cases(metrix),]

# drop nocl 1, which are speceis names
metrix= metrix[,2:ncol(metrix)]

# run NMDS analysis
test = metaMDS(metrix, distance = 'gower', noshare = FALSE)

# draw result
plot(test)

在这里插入图片描述

stress 分析

# show stress analysis result
test$stress
> test$stress
[1] 0.1361019

P-values results

# calculate P-value
envfit(ord = test,env = metrix)
> envfit(ord = test,env = metrix)

***VECTORS

                                                                                                   NMDS1
70001._Fruiting_calyx_length_(C1)                                                               -0.44058
70002._Fruiting_calyx_width_(C1)                                                                -0.42127
70003._Length_of_longest_fruiting_calyx_lobe_(C1)                                               -0.04738
70021._Width_of_the_longest_fruiting_calyx_lobe_(C1)                                            -0.15377
70010._Fruiting_calyx_base_invagination_(D1)                                                    -0.70729
70011._Fruiting_calyx_angled_(D1)                                                               -0.79430
70012._Fruiting_calyx_lobes_sinus_(D1)                                                           0.16247
70014._Fruiting_calyx_primary_veins_distinct_from_other_vein_orders_(D1)                        -0.97775
70016._Fruiting_calyx_secondary_veins_distinct_from_other_vein_orders_and_emerge_from_base_(D1) -0.85812
70017._Fruiting_calyx_secondary_veins_fork_before_lobe_sinus_(D1)                               -0.91799
70018._Fruit_type_(D1)                                                                          -0.78117
70019._Fruiting_calyx_inflated_(D1)                                                             -0.97198
70020._Fruiting_calyx_venation_pattern_(D1)                                                     -0.64975
                                                                                                   NMDS2
70001._Fruiting_calyx_length_(C1)                                                                0.89771
70002._Fruiting_calyx_width_(C1)                                                                 0.90694
70003._Length_of_longest_fruiting_calyx_lobe_(C1)                                                0.99888
70021._Width_of_the_longest_fruiting_calyx_lobe_(C1)                                             0.98811
70010._Fruiting_calyx_base_invagination_(D1)                                                    -0.70692
70011._Fruiting_calyx_angled_(D1)                                                               -0.60752
70012._Fruiting_calyx_lobes_sinus_(D1)                                                          -0.98671
70014._Fruiting_calyx_primary_veins_distinct_from_other_vein_orders_(D1)                        -0.20976
70016._Fruiting_calyx_secondary_veins_distinct_from_other_vein_orders_and_emerge_from_base_(D1)  0.51345
70017._Fruiting_calyx_secondary_veins_fork_before_lobe_sinus_(D1)                                0.39661
70018._Fruit_type_(D1)                                                                           0.62431
70019._Fruiting_calyx_inflated_(D1)                                                             -0.23507
70020._Fruiting_calyx_venation_pattern_(D1)                                                     -0.76015
                                                                                                    r2
70001._Fruiting_calyx_length_(C1)                                                               0.2166
70002._Fruiting_calyx_width_(C1)                                                                0.1170
70003._Length_of_longest_fruiting_calyx_lobe_(C1)                                               0.2824
70021._Width_of_the_longest_fruiting_calyx_lobe_(C1)                                            0.2508
70010._Fruiting_calyx_base_invagination_(D1)                                                    0.4345
70011._Fruiting_calyx_angled_(D1)                                                               0.4811
70012._Fruiting_calyx_lobes_sinus_(D1)                                                          0.4865
70014._Fruiting_calyx_primary_veins_distinct_from_other_vein_orders_(D1)                        0.1947
70016._Fruiting_calyx_secondary_veins_distinct_from_other_vein_orders_and_emerge_from_base_(D1) 0.7551
70017._Fruiting_calyx_secondary_veins_fork_before_lobe_sinus_(D1)                               0.5930
70018._Fruit_type_(D1)                                                                          0.0752
70019._Fruiting_calyx_inflated_(D1)                                                             0.5651
70020._Fruiting_calyx_venation_pattern_(D1)                                                     0.0984
                                                                                                Pr(>r)
70001._Fruiting_calyx_length_(C1)                                                                0.001
70002._Fruiting_calyx_width_(C1)                                                                 0.002
70003._Length_of_longest_fruiting_calyx_lobe_(C1)                                                0.001
70021._Width_of_the_longest_fruiting_calyx_lobe_(C1)                                             0.001
70010._Fruiting_calyx_base_invagination_(D1)                                                     0.001
70011._Fruiting_calyx_angled_(D1)                                                                0.001
70012._Fruiting_calyx_lobes_sinus_(D1)                                                           0.001
70014._Fruiting_calyx_primary_veins_distinct_from_other_vein_orders_(D1)                         0.001
70016._Fruiting_calyx_secondary_veins_distinct_from_other_vein_orders_and_emerge_from_base_(D1)  0.001
70017._Fruiting_calyx_secondary_veins_fork_before_lobe_sinus_(D1)                                0.001
70018._Fruit_type_(D1)                                                                           0.001
70019._Fruiting_calyx_inflated_(D1)                                                              0.001
70020._Fruiting_calyx_venation_pattern_(D1)                                                      0.001
                                                                                                   
70001._Fruiting_calyx_length_(C1)                                                               ***
70002._Fruiting_calyx_width_(C1)                                                                ** 
70003._Length_of_longest_fruiting_calyx_lobe_(C1)                                               ***
70021._Width_of_the_longest_fruiting_calyx_lobe_(C1)                                            ***
70010._Fruiting_calyx_base_invagination_(D1)                                                    ***
70011._Fruiting_calyx_angled_(D1)                                                               ***
70012._Fruiting_calyx_lobes_sinus_(D1)                                                          ***
70014._Fruiting_calyx_primary_veins_distinct_from_other_vein_orders_(D1)                        ***
70016._Fruiting_calyx_secondary_veins_distinct_from_other_vein_orders_and_emerge_from_base_(D1) ***
70017._Fruiting_calyx_secondary_veins_fork_before_lobe_sinus_(D1)                               ***
70018._Fruit_type_(D1)                                                                          ***
70019._Fruiting_calyx_inflated_(D1)                                                             ***
70020._Fruiting_calyx_venation_pattern_(D1)                                                     ***
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Permutation: free
Number of permutations: 999

后记

因为NMDS采用了随机计算,所以每次结果都不同,也无法重现文献结果,但大致结果相同。

本文中,我已经学会并详细记录了使用vegan进行分类(对物种进行排序分类),工作流程包括使用metaMDS函数、stress分析和P-values结果。

纰漏:唯一无法实现(或者说我对vegan理解的不到位),原始文献中:All characters were treated as symmetric except fruit type, which was considered ordered. 也就是说,原始文献中进行NMDS分析时,对数据进行了处理:果实类型处理为orderd(排序的),除此以外均处理为symmetric(对称的)。

另外,非常感谢王翰臣给予的帮助,非常感谢!

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

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

相关文章

L2-043 龙龙送外卖

L2-043 龙龙送外卖 题目描述: 给你n个点,m次询问,n个点构成一棵树 给出n个点,每个点的父节点 你现在在根结点,对于每次询问i,你都要回答,从根结点出发,至少经历1到i次询问的每个点1…

构建用户画像完整版

01 画像平台产品架构 上图是基于快看数据中台画像平台产品的理解和定位整理出来的产品架构。 画像平台首先是服务于业务的,运营可以基于画像平台对单个用户或者人群包做画像的洞察,平台服务的业务应用层包含: (1)个…

【C++初阶】(入门)命名空间

在C/C中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字…

【文章学习系列之模型】FEDformer

本章内容文章概况模型流程主要结构Frequency Enhanced Decomposition Architecture(频率增强分解结构)Fourier enhanced blocks and Wavelet enhanced blocks(傅里叶增强模块和小波增强模块)Fourier Enhanced Structure&#xff0…

基于Segment anything的实例分割半自动标注

介绍 使用Meta AI的SAM,并添加了一个基本界面来标记图像,并保存COCO格式的掩码。 源码 https://github.com/anuragxel/salt 安装 安装SAM;创建conda虚拟环境,使用conda env create -f environment.yaml;安装coco-viewer来快速可视化标注结果。使用方法 1、将图片放入到…

WSL下的Kafka开发容器:Docker搭建、API、整合

背景介绍 Kafka是一个分布式流处理平台,可以处理大规模数据流并支持实时数据流的处理。 本文介绍了如何在WSL下使用Docker搭建Kafka容器,并使用Python的kafka-python库和FastAPI框架实现了一个简单的API。同时,还将该服务整合到一个整体的d…

ssm异常处理

ssm异常处理 类上和方法上都要有注解: 类上的注解: 异常处理用到的注解,里面包含了其他的一些必须的注解,详解看下图 方法上的注解: 上面的要懂打配合 现在创建一个处理异常的工具类,加上前面提到的注…

CSRF与SSRF比较

CSRF与SSRF比较 参考:简述CSRF、SSRF的区别 CSRF CSRF,全名 Cross-site requestforgery,也就是 跨站请求伪造。XSS是跨站脚本攻击。与XSS比较,XSS攻击是跨站脚本攻击,CSRF是跨站请求伪造,也就是说CSRF攻…

【Redis】入门篇之相关概念与Redis的安装

目录 一、关系型数据库与非关系型数据库 1、非关系数据库的种类 2、关系型数据库与非关系型数据库的区别 二、认识Redis 1、概念 2、特点 1.键值型 2.单线程 3.低延迟、速度快 4.支持数据持久化 5.支持主从集群、分片集群 6.支持多语言客户端 三、Redis的安装 1、…

IO-IO基础

简介 IO流,以计算机内存为主体,从内存到网络/磁盘等其他地方叫输出流(内存往外出);网络/磁盘等其他地方写到内存叫输入流(往内存输入)。 Java中的IO流 4个抽象基类 InputStream/Reader(读到内存里) 所有的输入流的基…

环境变量详解

目录 环境变量是什么? 常见环境变量 查看环境变量 指令查看 代码查看 系统调用查看 本地变量 环境变量全局性 环境变量是什么? 我们要执行一个我们所写的c/c程序时,需要./可执行文件,告诉操作系统你在哪里&#xff0c…

PC Cleaner Pro(电脑清理工具)图文安装教程

OneSafe PC Cleaner 会查找并删除垃圾文件和快捷方式,这些文件和快捷方式会随着时间的推移在您的 PC 上堆积,从而占用您的硬盘空间。该软件会搜索并删除已卸载程序留下的无效快捷方式和文件。OneSafe PC Cleaner 还会识别并删除注册表中不必要的条目。 W…

YOLOv8详解代码实战,附有效果图

YOLOv8架构 YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,鉴于Yolov5的良好表现,Yolov8在还没有开源时就收到了用户的广泛关注。yolov8的整体架构如下&…

vue3计算属性与监视及watchEffect函数

computed计算属性 首先看一下页面的结构 在v3中可以用v2的方式来写计算属性,但是不建议这么写 而想要在v3中使用计算属性,需要先引入它 它不想之前在v2中的函数了,而是要写在computed()里面 当然这个计算属性是简写(没有考虑计算…

Python opencv 先腐蚀后膨胀 消除图像噪声

cv2.getStructuringElement()介绍 在进行图像形态学操作时,首先需要构造一个特定的核,该核可以自定义生成,也可以通过cv2.getStructuringElement()函数构造。 cv2.getStructuringElement(shape, ksize)参数: shape ---- 代表形状…

常见在线AI绘画平台

系列文章目录 Midjourney AI绘画工具使用保姆级教程 本地部署Stable Diffusion教程,亲测可以安装成功 Stable Diffusion界面参数及模型使用 文章目录系列文章目录前言一、Midjourney二、DreamStudio三、Lexica四、STOCKIMG.AI五、Dream by WOMBO六、PicSo七、百…

ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析

查看原文>>>ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析 目录 专题一、空间数据获取与制图 专题二、ArcGIS专题地图制作 专题三、空间数据采集与处理 专题四、遥感数据处理与应用 专题五、DEM数据…

macOS Big Sur 11.7.6 (20G1231) Boot ISO 原版可引导镜像

本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 2023 年 4 月 10 日(北京…

压力测试工具JMeter的下载安装与基础使用(一)

JMeter的下载安装与基础使用1.环境准备2.下载与配置2.1下载并解压2.2 配置系统变量 JMETER_HOME2.3配置系统变量 CLASSPATH3.测试JMeter是否配置成功4. 语言修永久修改为中文(可选)1.环境准备 JMeter是用java开发的,示例Apache JMeter5.5版本…

css动画及背景设置

css属性 clip-path 属性使用裁剪方式创建元素的可显示区域。区域内的部分显示,区域外的隐藏。可以指定一些特定形状。 可以创建多边形内容显示区域polygon clip-path: polygon(0 0, 100% 0, 100% 75vh 0 100%); 顺序 1初始x y 为0 0 1向2位置 x轴移动100% y移…