require(vegan)
{
set.seed(765) ### pra reprodutibilidade!
# Matriz das espécies
spdf <- matrix(NA, 60, 4, dimnames =
list(1:60, c("sp1", "sp2", "sp3", "sp4")))
spdf <- as.data.frame(spdf)
# Adicionado ruído
eff <- sort(rep(1:6, 10))
spdf$sp1 = eff + rnorm(60, 0, 0.25)
spdf$sp2 = eff + rnorm(60, 0, 0.25)
spdf$sp3 = eff + rnorm(60, 0, 0.25)
spdf$sp4 = eff + rnorm(60, 0, 0.25)
# Tratamentos
trat <- gl(3, 20, labels = paste("t", 1:3, sep=""))
#Repetições
rept<-rep(1:20,3)
}
#Juntando tratamentos e repetições
trat_r<-paste(trat,rept,sep="_")
pts.spc<-cbind(trat_r,spdf)
rownames(pts.spc) = pts.spc[,1]
pts.spc<-pts.spc[,-(1)]
head(pts.spc)
# Calcula distância de bray-curtis entre amostras
pts.spc.dist <- vegdist(pts.spc, method = "bray")
#Agrupamento de comunidades usando o algorítimo average-linkage
pts.spc.clust <- hclust(pts.spc.dist, method = "average")
# Diagrama de cluster
plot(pts.spc.clust, ylab = "Dissimilaridade")
# --- Dissimilaridade média --- #
str(pts.spc.clust)
res <- data.frame(lab=pts.spc.clust$labels, height=c(0, pts.spc.clust$height))
res$trat <- as.factor(sub("_.*$", "", res$lab))
head(res)
tapply(res$height, res$trat, mean)
# t1 t2 t3
# 0.01395473 0.03670206 0.13605946
</code>