生物多样性指数的计算在R中计算十分简单,这里介绍一下用vegan包计算生物多样性指数的方法。
首先要将R软件和用到的程序包安装好。在数据处理和格式转换过程中,需要用到openxlsx、reshape2和vegan包。如果没有安装这几个程序包,就在R console中输入以下命令安装。
1 2 3
| install.packages('reshape2') install.packages('openxlsx') install.packages('vegan')
|
第一步 在Excel中输入数据
建议将数据整理成样方、物种、个体数格式,这也是样方调查时最常见的一种格式,将数据输入到Excel中。注意:Excel文件列的名字要与下面的格式完全一致,因为R对大小写敏感,所以大小写也要一致。
1 2 3 4 5 6 7 8 9 10 11 12 13
| plotname species abundance plot1 sp1 3 plot1 sp2 6 plot1 sp3 1 plot1 sp4 2 plot1 sp5 1 plot2 sp1 8 plot2 sp3 30 plot3 sp4 2 plot3 sp2 1 plot3 sp6 1 plot3 sp7 3 .....
|
保存为 herbplots.xlsx,假设保存在“D:/herb/”。
第二步 读取Excel文件
1 2 3 4
| library(openxlsx) library(reshape2) library(vegan) herb.data <- read.xlsx("D:/herb/herbplots.xlsx")
|
第三步 转换为样方-物种矩阵
1 2 3 4 5
| library(reshape2) herb.mat <- acast(herb.data, formula = plotname ~ species , value.var = "abundance", fill = 0)
|
此时生成的矩阵,格式如下:
1 2 3 4
| sp1 sp2 sp3 sp4 sp5 sp6 sp7 plot1 3 6 1 2 1 0 0 plot2 8 0 30 0 0 0 0 plot3 0 1 0 2 0 1 3
|
第四步 计算生物多样性指数
Shannon-Wiener指数
1
| Shannon.Wiener <- diversity(herb.mat, index = "shannon")
|
Simpson指数
1
| Simpson <- diversity(herb.mat, index = "simpson")
|
Inverse Simpson指数
1
| Inverse.Simpson <- diversity(herb.mat, index = "inv")
|
物种累计数
1 2
| S <- specnumber(herb.mat) plot(S)
|
#Pielou均匀度指数
1
| J <- Shannon.Wiener/log(S)
|