文章目录

  • Alpha 多样性指数
  • Beta多样性指数
  • Hill的Beta多样性指数和Gamma多样性指数
  • 基于距离和方差分解的Beta多样性指数
  • 功能多样性
  • 系统发育多样性

Alpha 多样性指数

常见的Alpha多样性指数的含义见https://blog.csdn.net/rojyang/article/details/81326378

R代码如下:

### library(vegan)   ##加载群落数据分析常用的包
data(BCI)  ##vegan包中自带的群落数据shannon <- diversity(BCI,MARGIN = 1)  ## Shannon 多样性指数, MARGIN=1 计算行的多样性 ,一般的群落数据表行名为样方名,列名为物种名  index默认为“shannon”simpson <- diversity(BCI,index = "simpson",MARGIN = 1)   ## Simpson多样性指数SR <- specnumber(BCI,MARGIN = 1)    ## 物种丰富度:相当于每一行大于0 (生物量、盖度或多度) 的物种数Pielou <- shannon/log(SR)     ##均匀度指数diversity <- data.frame(shannon,simpson,SR,Pielou)  ##将物种丰富度、Shannon多样性指数、Simpson多样性指数和Pielou' 均匀度指数放置在一个数据框中write.csv(diversity,"diversity.csv")  ## 将多样性结果导出为csv文件

Beta多样性指数

Hill的Beta多样性指数和Gamma多样性指数

library(vegan)
library(vegetarian)data(dune)d(dune,lev = "alpha",q=0) ## 平均alpha 物种丰富度d(dune,lev = "alpha",q=1) ## 平均alpha Shannon多样性d(dune,lev = "alpha",q=2) ## 平均alpha Simpson多样性d(dune,lev = "beta",q=0) ##倍性beta物种丰富度d(dune,lev = "beta",q=1) ##倍性beta Shannon多样性d(dune,lev = "beta",q=2) ##倍性beta Simpson多样性d(dune,lev = "gamma",q=0) ##Gamma物种丰富度d(dune,lev = "gamma",q=1) ##Gamma Shannon多样性d(dune,lev = "gamma",q=2) ##Gamma Simpson多样性

基于距离和方差分解的Beta多样性指数

library(vegan)
betadiver(dune,method = "w") ## The basic Whittaker index
betadiver(help=TRUE)  ## 共有24中计算Beta多样性(距离)的方法library(adespatial)dune.beta <- beta.div(dune,method = "hellinger",nperm = 999)
dune.beta$beta
dune.beta$SCBD   ##  大于平均值的物种
dune.beta$LCBD   ##Beta 多样性样方贡献

功能多样性

单性状(混合性状)功能多样性

data(dummy)
ex1 <- dbFD(dummy$trait, dummy$abun)  ##混合性状或单一性状的功能多样性
ex1

多性状多样方功能多样性

library(tidyverse)
library(FD)
##  制作空数据框用于后续存放数据Plot<- 'abc'
trait1<-0
trait2<-0
trait3<-0
trait4<-0
trait5<-0
trait6<-0
trait7 <- 0
trait8 <- 0
CWM.cover.result <- data.frame(Plot,trait1,trait2,trait3,trait4,trait5,trait6,trait7,trait8)
CWM.cover.result$Plot <- as.character(CWM.cover.result$Plot)
str(CWM.cover.result)
FDis.cover.result <- CWM.cover.resultTrait <- c('trait1','trait2','trait3','trait4','trait5','trait6','trait7','trait8')
Plot <- unique(trait_mean$Plot)#用循环来计算每个样方每种性状的功能多样性
#cycle
for (i in 1:8) {for (v in 1:72) {Trait.i <- Trait[i]   ##  第i个性状Plot.v <- Plot[v]     ##  第v个样方Data.i <- trait_mean%>%     ##  选择性状数据  dplyr::select('Plot','Species',Trait.i)%>%filter(Plot==Plot.v)names(Data.i)<-c('Plot','Species','Trait_i')Data.i<-Data.i%>%  filter(Trait_i != 'NaN')Cover<-cover%>%            ##  选择群落数据(这里使用盖度数据)  长数据filter(Species %in% unique(Data.i$Species))%>%filter(Plot==Plot.v)Data.i<- Data.i%>%filter(Species %in% unique(Data.i$Species))data.db <-merge(Data.i,Cover,by=c('Plot','Species'))%>%  ## 将两种数据组合filter(Cover != 0)data.db.trait <- dplyr::select(data.db,Species,Trait_i)row.names(data.db.trait) <- data.db.trait$Speciesdata.db.trait<-subset(data.db.trait,select = Trait_i)data.db.cover <- dplyr::select(data.db,Species,Cover)%>%  ## 将盖度长数据转化为宽数据spread(key=Species,value=Cover)CWM <- dbFD(x=data.db.trait, a=data.db.cover, calc.FRic = F, calc.FDiv = F, w.abun = T, calc.CWM = TRUE)   ## 计算功能多样性,这里主要计算了FDis和CWMCWM.cover.result[v,1] <- Plot.vCWM.cover.result[v,i+1] <- CWM$CWM[1,1]FDis.cover.result[v,1] <- Plot.vFDis.cover.result[v,i+1] <- CWM$FDis}}CWM.cover.result <- CWM.cover.result%>%  ## 将结果转化为长数据格式并重命名gather(key=key,value = value,-Plot)%>%mutate(CWM='CWM')%>%unite(key2,CWM,key,sep="_")%>%spread(key=key2,value = value)FDis.cover.result <- FDis.cover.result%>%  ## 将结果转化为长数据格式并重命名gather(key=key,value = value,-Plot)%>%mutate(CWM='FDis')%>%unite(key2,CWM,key,sep="_")%>%spread(key=key2,value = value)

系统发育多样性


com_2020 <- read.csv("com2020.csv",row.names = 1)  ## 读取群落数据
library(ape)
library(picante)                                   ## 加载系统发育分析包
phylo <- read.tree("tree.treefile")                ## 读取系统发育树文件
rooted <- root(phylo,outgroup = "Amborella_trichopoda",resolve.root = T)  ## 转化为有根树a <- cophenetic(rooted)%>%as.data.frame()          ## 转化为距离矩阵cover2020.pd<-pd(com_2020,rooted)                  ## 求Fish' 系统发育距离cover2020.mpd.ab<-mpd(com_2020,a,abundance.weighted = FALSE)  ##  平均系统发育距离cover2020.mntd.ab<-mntd(com_2020,a,abundance.weighted = FALSE) ##  平均最近种系统发育距离cover2020.mpd.ab<-mpd(com_2020,a,abundance.weighted = TRUE)  ##  平均系统发育距离 (盖度加权)cover2020.mntd.ab<-mntd(com_2020,a,abundance.weighted = TRUE) ##  平均最近种系统发育距离 (盖度加权)cover2020.ses.mpd.pa<-ses.mpd(com_2020,a,abundance.weighted = FALSE)  ##  标准化平均系统发育距离  物种池为系统发育树物种池cover2020.ses.mntd.pa<-ses.mntd(com_2020,a,abundance.weighted = FALSE) ##  标准化平均最近种系统发育距离cover2020.ses.mpd.pa<-ses.mpd(com_2020,a,abundance.weighted = FALSE) ##  标准化平均系统发育距离 (盖度加权)cover2020.ses.mntd.pa<-ses.mntd(com_2020,a,abundance.weighted = FALSE)  ##  标准化平均最近种系统发育距离 (盖度加权)

参考文献:
Fisher, R.A., Corbet, A.S. & Williams, C.B. (1943). The relation between the number of species and the number of individuals in a random sample of animal population. Journal of Animal Ecology 12, 42–58.

Hurlbert, S.H. (1971). The nonconcept of species diversity: a critique and alternative parameters. Ecology 52, 577–586.

Jost, L. 2006. Entropy and diversity. Oikos 113(2): 363-375.

Jost, L. 2007. Partitioning diversity into independent alpha and beta components. Ecology 88(10): 2427-2439.

Hill, M. 1973. Diversity and evenness: A unifying notation and its consequences. Ecology 54: 427-432.

Baselga, A. (2010) Partitioning the turnover and nestedness components of beta diversity. Global Ecology and Biogeography 19, 134–143.

Koleff, P., Gaston, K.J. and Lennon, J.J. (2003) Measuring beta diversity for presence-absence data. Journal of Animal Ecology 72, 367–382.

Marion, Z.H., Fordyce, J.A. and Fitzpatrick, B.M. (2017) Pairwise beta diversity resolves an underappreciated source of confusion in calculating species turnover. Ecology 98, 933–939.

Whittaker, R.H. (1960) Vegetation of Siskiyou mountains, Oregon and California. Ecological Monographs 30, 279–338.
Chao, A., R. L. Chazdon, R. K. Colwell and T. J. Shen. 2006. Abundance-based similarity indices and their estimation when there are unseen species in samples. Biometrics 62: 361-371.

Legendre, P. 2014. Interpreting the replacement and richness difference components of beta diversity. Global Ecology and Biogeography 23: 1324-1334.

Legendre, P. and D. Borcard. 2018. Box-Cox-chord transformations for community composition data prior to beta diversity analysis. Ecography 41: 1820-1824.

Legendre, P. and M. De Cáceres. 2013. Beta diversity as the variance of community data: dissimilarity coefficients and partitioning. Ecology Letters 16: 951-963.

Legendre, P. and E. D. Gallagher, E.D. 2001. Ecologically meaningful transformations for ordination of species data. Oecologia 129: 271-280.

Legendre, P. and Legendre, L. 2012. Numerical Ecology. 3rd English edition. Elsevier Science BV, Amsterdam.

Webb, C., D. Ackerly, M. McPeek, and M. Donoghue. 2002. Phylogenies and community ecology. Annual Review of Ecology and Systematics 33:475-505.

R语言中常用的生物多样性指数的计算(Alpha,Beta,Gamma,功能多样性,系统发育多样性)相关推荐

  1. 技巧 | 如何使用R语言的常用工具包绘制双变量填充地图

    之前本号转载了DataCharm公众号的一篇推送: 转载 | 双变量映射地图可视化绘制方法 这篇推送使用了biscale工具包绘制了双变量填充地图.近来,小编发现使用常用的绘图工具包也能很便捷的绘制这 ...

  2. R语言中读取excel数据的常用方式有哪些?

    R语言中读取excel数据的常用方式有哪些? 目录 R语言中读取excel数据的常用方式有哪些? R语言是解决什么问题的? R语言中读取excel数据的常用方式有哪些? R语言是解决什么问题的? R ...

  3. c语言中预处理指令的作用,C语言中常用预处理指令

    转载自 https://blog.csdn.net/farsight2009/article/details/58602886 姓名:张艳博 学号:17021223249 [嵌牛导读]: C语言中常用 ...

  4. r语言中正定矩阵由于误差不正定_R语言之数据处理(一)

    在上一篇小文中,提到了关于R语言导入数据的一些方法,之后的重点就转向了数据的处理上.数据处理其实在整个数据分析项目中所占用的时间是比较多的,所以根据处理的目的不同,也有不同的处理方法.在R语言中,我通 ...

  5. 《R语言编程艺术》——1.4 R语言中一些重要的数据结构

    1.4 R语言中一些重要的数据结构 R有多种数据结构.本节将简单介绍几种常用的数据结构,使读者在深入细节之前先对R语言有个大概的认识.这样,读者至少可以开始尝试一些很有意义的例子,即使这些例子背后更多 ...

  6. c语言设置输出字符大小_C语言中常用的几个头文件及库函数

    点击上方"C语言中文社区",选择"设为星标★" 技术干货第一时间送达! 来源:https://www.jb51.net/article/124594.htm 这 ...

  7. R语言数据分析笔记——t检验(含正态性检验和方差齐性检验在SPSS和R语言中的操作t检验(单样本、双独立样本、配对样本)在Excel、SPSS、R语言中的操作)

    前言:本文为个人学习笔记,为各大网站上的教学内容之综合整理,综合整理了①假设分析的基础知识.②正态性检验和方差齐性检验在SPSS和R语言中的操作.③t检验(单样本.双独立样本.配对样本)在Excel. ...

  8. r语言中的或怎么表示什么不同_R语言中$是什么意思

    展开全部 $是S3类的引用方32313133353236313431303231363533e58685e5aeb931333431353430式,@是S4类的引用方式.$比较常用,@比较少用.通常我 ...

  9. 用计算机怎么计算r角度,R语言中的数学计算

    原标题:R语言中的数学计算 前言 R是作为统计语言,生来就对数学有良好的支持,一个函数就能实现一种数学计算,所以用R语言做数学计算题特别方便.如果计算器中能嵌入R的计算函数,那么绝对是一种高科技产品. ...

  10. R语言中的正则表达式

      这篇博客是对R语言中的正则表达式进行的整理,以实际应用为主,主要用于学习备忘,后续会根据需要进行补充.常用函数部分仅给出部分示例,详细使用方式可以使用R的帮助函数查询. 1.语法规则 常用符号及含 ...

最新文章

  1. 关于PreferenceActivity的使用和一些问题的解决(自己定义Title和取值)
  2. Technical Artist的不归路 —— Kajiya-Kay Shading
  3. Docker 制作镜像-redis
  4. 数据分析师如何正确的提意见?(文末赠书)
  5. 真正的模块化Web应用程序:为什么没有开发标准?
  6. 使用C++控制台程序或Python调用Dll创建Qt界面(dll中创建QApplication,qtwinmigrate的使用)
  7. CDQZ_Training 2012-05-24 聪明的打字员
  8. .net core EPPlus npoi_在.NET中隐藏带有只读Web路径的Web shell
  9. putty提示Network error:Software caused connection abort
  10. Qt开发之路——基于RedfishAPI的服务器管理小应用
  11. awg线规,直径,面积,电流对照
  12. [定理证明]正态随机过程又是马尔科夫过程的充要条件(高斯-马尔科夫过程的充要条件)...
  13. 算法基础-顺序统计量
  14. 【服务端】多线程游戏服务端
  15. 简单漫画读懂联邦学习
  16. 终极实践:部署LNMP服务
  17. linux监控硬件温度(CPU和GPU等)
  18. perl脚本遍历文件夹及对SAC波形文件进行去仪器响应、滤波等操作实现
  19. validform_v5.3.2使用示例
  20. 水经注在《宁夏清水湾小流域治理》工程项目中的应用案例

热门文章

  1. 微信小程序 多标签选择和添加标签
  2. 算法设计与分析——字符a~h出现的频率恰好是前8个斐波那契数——斐波那契数和霍夫曼编码的关系——数学证明
  3. SpringMVC+vue实现前后端分离的旅游管理系统
  4. HAL库学习笔记-10 HAL库外设驱动框架概述
  5. 线性代数让我想想:两步得到二阶矩阵的逆
  6. 90-0004Web颜色标准【中英文颜色对照】
  7. 阿里云DataV数据可视化---数据
  8. 对偶式与反函数_图解数字电路中标准式的对偶式和反函数求解
  9. linux下好玩或者好用的小工具
  10. 基于单目视觉的平面目标定位和坐标测量 (上) - 坐标系和成像模型