
Alexandre, bom dia! Segue uma sugestão, ### <code r> 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> Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]