R 语言计算生态位指数
2022-07-06 本文已影响0人
西北工作室
生态位宽度(Bi)采用Colwell等(1971)加权修正的Levins指数
图一式中,Bi为物种i的生态位宽度值,其范围在[0-1]之间,值越大说明该物种生态位宽度越宽;Pij为物种i在第j资源状态下的个体数占该种所有个体数的比例,r为资源总数。
生态位重叠指数 生态位重叠指数采用Pianka指数(Piankaet al., 1973):
图二式中,Oik为物种i与物种k的生态位重叠指数,其值越大表示生态位重叠程度越高,取值范围为[0,1];Pij为物种i利用资源状态j的个体数占该种个体总数的比例,r为资源(季节或样点)的总数;Pkj为物种k利用资源状态j的个体数占该种个体总数的比例。R表示生态响应速率。
下面我们进行R语言操作:
library(spaa) ##加载包
df1=read.csv("物种丰度.csv") #读取丰度数据
这里的丰度数据为:行为样本,列为物种;
图三(1)计算生态位宽度:levins指数
b=as.data.frame(niche.width(df1, method ="levins")) #计算生态位宽度
colnames(b)="levins" #重新命名
由于spaa包中的niche.width()函数是没有/r的,如图一,公式中,因此继续用"levins"/r,(r为样点总个数)
b$levins1=b$levins/nrow(df1) #计算加权的levins生态位指数,既公式一(图一)的生态位指数
参考文献:
Colwell RK, Futuyma DJ. 1971. On the measurement of Niche Breadth and Overlap. Ecology, 52(4): 567-576.