今日有个群有小伙伴问alpha多样性的计算,简单回答了一下,顺便放到公众号吧。
众所周知,群落的alpha多样性我们用的较多的指标是richeness, shannon-winner指数, evenness(均匀度),辛普森指数1-D,辛普森指数的倒数1/D,下面我们就以vegan包中的BCI数据集为例,计算alpha多样性。
因为我之前记vegan包中有样方数据例子,但是想不起来数据集具体名字,于是使用print(data(package='vegan')) 查看此包中的示例数据集,然后选用数据集BCI。

image.png
data(BCI) ####查看数据

image.png
?BCI
这是BCI数据集的介绍(50个样方的物种信息-宽数据)

image.png
好的,数据准备就绪,接下来就是用diversity函数完成计算了。 diversity函数的使用提示可以用?diversity查看。
d <- BCI # 先给BCI赋值给d,后面输入就简单点
data.frame就是将这些数据链接起来成为一个数据框
adiv <- data.frame(richness=specnumber(d),
shannon=diversity(d, index="shannon"),
simpson=diversity(d, index="simpson"),
invD=diversity(d, index="invsimpson"),
evenness=diversity(d, index="shannon")/log(specnumber(d)))
adiv

image.png
这就是每个样方的alpha多样性啦,所有代码贴在下面
# install.packages('vegan')
library(vegan)
print(data(package='vegan')) ##查看vegan包中的数据集
data(BCI)##查看BCI数据
d <- BCI ##将数据赋值给d
?BCI##查看BCI数据来源,行列名代表什么
?diversity##查看diversity包的帮助文档
adiv <- data.frame(richness=specnumber(d),
shannon=diversity(d, index="shannon"),
simpson=diversity(d, index="simpson"),
invD=diversity(d, index="invsimpson"),
evenness=diversity(d, index="shannon")/log(specnumber(d)))
adiv