R软件计算生物多样性指数

生物多样性指数的计算在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)