每一行是一个样本,每一列是一个物种(OTU),统计每一行(即每一样本)的多样性指数
不多说直接上代码
set.seed(1000)
dataT2 = rrarefy(dataT, min(rowSums(dataT)))
dataT2=rrarefy(dataT,min(rowSums(dataT))) ###基于最小值进行重抽样标准化
#计算Shannon-Wiener指数
shannon.wiener=diversity(dataT2, "shannon")
shannon=data.frame(values=shannon.wiener)
#计算Simpson指数
simpson=data.frame(values=diversity(dataT2,"simpson"))
#计算Inverse Simpson指数
insimpson=data.frame(values=diversity(dataT2,"inv"))
#计算物种累计数
s=specnumber(dataT2)
sn=data.frame(values=s)
#计算Pielou均匀度指数
pielou=data.frame(values=shannon.wiener/log(s))
#计算chao1, ACE
ca=data.frame(estimateR(dataT2)) #chao1, ACE
cat=data.frame(t(ca))
dv=data.frame(Observed=sn$values,Chao1=cat$S.chao1,
Shannon=shannon$values,Pielou=pielou$values,
Simpson=simpson$values,Insimpson=insimpson$values,
g=group$group)
dvm = melt(dv, id ="g")
ggplot(dvm, aes(variable, value)) +
stat_boxplot(aes(fill=g),geom ='errorbar', width=0.3, position=position_dodge(1.05)) +
geom_boxplot(aes(fill=g), position=position_dodge(1.05)) +
facet_wrap(~variable, scale="free", nrow=1)