R软件中如何进行群落聚类分析?

群落按照物种相似形组成进行聚类分析,可以用树状图较好的表现物种的组成关系。受到很多植被学家的重视。这里以R软件实现聚类分析为例。

如果按照物种组成的相似性做聚类分析,那么可以用Jaccard指数(经过转换的)。Jaccard指数只考虑物种在两个样方间是否重复出现,盖度在分析的过程中并不起什么作用。但是如果对乔木和灌木进行分析,就可以考虑个体的数量,计算样方物种组成的相似性的时候用Bray-Curtis指数。Jaccard指数和Bray-Curtis指数在众多生态学相关的程序包中都是可以计算的。下面说一下在R软件中,结合vegan程序包,对草本样方的物种组成进行聚类分析。

下面是在R中的具体操作过程:

第一步 矩阵的整理,建议先整理一下各样地的名录,成如下格式,再用R整理成物种矩阵。

1
2
3
4
5
6
7
8
9
10
11
12
13
plotname species
plot1 sp1
plot1 sp2
plot1 sp3
plot1 sp4
plot1 sp5
plot2 sp1
plot2 sp3
plot3 sp4
plot3 sp2
plot3 sp6
plot3 sp7
.....

在Excel中,另存为csv格式,如存名称为 herbplots.csv。

第二步 读取文件

1
herb.data<- read.csv("D:/herb/herbplots.csv", header=T)

第三步 转换为 矩阵

1
pre.matrix <- table(herb.data)

此时生成的矩阵,形式如下:

1
2
3
4
plotname sp1 sp2 sp3 sp4 sp5 sp6 sp7
plot1 1 1 1 1 1 0 0
plot2 1 0 1 0 0 0 0
plot3 0 1 0 1 0 1 1

第四步 计算各样方的Jaccard距离

1
plot.dist <- vegdist(pre.matrix, method="jaccard")

距离矩阵为一个半矩阵,形式如下

1
2
3
plot1 plot2
plot2 0.6000000
plot3 0.7142857 1.0000000

第五步 使用UPGMA方法或者Ward法,对群落进行聚类

1
plot.hc <- hclust(plot.dist , "ave")

绘图

1
2
plot(plot.hc)
plot(plot.hc, hang=-1)

转换为dendrogram之后绘图

1
2
dendro.plot<-as.dendrogram(plot.hc)
plot(dendro.plot, horiz=T)