Black007的个人博客分享 http://blog.sciencenet.cn/u/Black007

博文

用R语言计算植物群落的重要值 (IV, Important Value)

已有 825 次阅读 2019-6-10 20:02 |个人分类:数据分析|系统分类:科研笔记

假期前往了几个自然保护区做植物调查,拿到了不少植物群落的数据。之前都懒得写,最近老板突然让交一篇论文,大家都手忙脚乱的处理数据QWQ!之前学习R语言,还有处理遥感数据的时候都查了不少博客里的攻略,让项目顺利完成,但是这次就没有查到处理植物群落的攻略,想着自己的R语言也写了挺久了,索性自己写一下吧! 关于数据清洗的部分,我会另外写,这篇就只写我是如何计算群落的重要值的。 那么,首先给大家看一下我们在论文中写的Method: “按照《植物群落学实验手册》(王伯荪等,1996),计算群落中各种群的相对显著度(RD)、相对多度(RA)、相对频度(RF)和重要值(IV)等,其中,乔木层重要值=相对显著度+相对频度+相对多度,灌木层重要值=相对盖度+相对频度+相对多度。其中,

乔木显著度用胸高断面积计算

灌木和草本显著度用盖度计算

(叶万辉等,2008)。”这里提一下, 频度就是每个物种出现的次数,比如一个大样方(40X40的大样方)中,乐昌含笑在12个样方(10X10的样方,一个大样方有16个样方)中出现,那么乐昌含笑的频度就是12。 然后,再喵一眼我们清洗完的数据。其中,plot就是样方编号,num是样方内个体的编号(这里不会用到),spe是种名,p是胸围(cm),h是高(m),a是冠幅(mXm)。然后,就开始甩代码了。


# 1. 读取数据处理包,并设置工作目录 library(xlsx) #这个包是用来读取excel表格和分析结果写入excel中的 setwd("D:\\out of class\\2017年暑假") #设置工作目录,也就是数据所在的文件夹


# 2. 读取数据 sh <- read.xlsx("cbshm.xlsx", 1, encoding = 'UTF-8') #其中,“cbshm.xlsx”就是数据文件啦,“1”是excel中的sheet,在这里写1就是乔木工作表,写2的话就是草本 head(sh) # 查看数据前6行


# 3. 计算各物种相对多度 num.spe <- table(unlist(sh$spe)) # 计算物种多度,物种多度就是大样方内某一物种的所有个体数 plot(num.spe) # 画出多度分布图,可以省略 RA <- num.spe/sum(num.spe) #计算相对多度(RA,relative abundance)


# 4. 计算相对显著度 sh$p <- as.numeric(sh$p) #将胸围数据转化成数值型,从excel中导入,数字应该还是字符型,所以需要转化成数值型 sh$area.c <- (sh$p/pi/2)^2*pi #计算个体的胸截面积,翻译:(胸围/π/2)^2*π spe.area.c <- tapply(sh$area.c, sh$spe, sum) #计算各物种的总胸截面积 r.dominance <- spe.area.c/sum(area.c.all) #相对显著度(RD,relative dominance)


# 5. 计算相对频度(这里仅为我的提取方法,应该还有更好得方法) library(stringr) #读取一个文字处理包 freq_table <- table(sh$plot, sh$spe) #提取出物种在样方中的分布 freq_TF <- summary(freq_table >0)[3,] #判断物种在样方中是否有分部 freq <- as.numeric(str_extract(freq_TF, '[0-9]+')) #用正则提取出物种的频数 r.freq <- freq/sum(freq) #计算相对频度(RF,relative frequence)


# 6. 构建重要值数据框 sh.IV <- data.frame(num.spe, RA, r.dominence, r.freq)  head(sh.IV) #查看一下前6行



从这里就可一看到,Var1.1就是相对多度,rdominance就是相对显著度,r.freq就是相对频度 # 7. 计算重要值IV,就把这些加起来 sh.IV$IV <- sh.IV$Freq.1 + sh.IV$r.dominence + sh.IV$r.freq 


#好了,搞定,现在导出数据就行。 write.xlsx(sh.IV, 'sh.IV.xlsx', sheetName = "乔木") 


OK啦,这样就计算完乔木的计算啦,草本层的话就是显著度的计算不用胸截面积而是换成盖度就行啦,在这里就不挂出来了。。。


抱歉的是,由于数据暂时不能公开, 所以没有办法把数据放上来,大家只能拿自己的数据来试了(反正看到这个贴的应该也都是要分析植物群落的吧,应该都有自己的数据)




http://blog.sciencenet.cn/blog-3412381-1184195.html

上一篇:麋鹿分布图制作(二)—— 用Python和R在地图上打点
下一篇:谈谈菌根网络

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2019-11-14 03:59

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部