1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
| ##########################################################
#####Importation tableau des Arrhenatheretea##############
##########################################################
#####
#Tableau transposé (1ligne=1relevé) avec x#
Arrhtr<-read.csv("U:/Villejoubert-G/Service civique 2015-2016/R/Relevesarrhpur/5.Arrh267_10sp_transp.csv",header=T,sep=";",dec=",")
#Tableau transposé (1ligne=1relevé) sans x#
Arrhtr2<-read.csv("U:/Villejoubert-G/Service civique 2015-2016/R/Relevesarrhpur/5.Arrh267_10sp_transp2.csv",header=T,sep=";",dec=",")
#Tableau transposé (1ligne=1relevé) tout pris en compte (r,i...)#
##row.names pour indiquer que la premierè colonne correspond à la légende des lignes
Arrhtr3<-read.csv("U:/Villejoubert-G/Service civique 2015-2016/R/Relevesarrhpur/Arrh267_Pres_abs.csv",header=T,sep=";",dec=",",row.names=1)
Arrhtr3_Num<-read.csv("U:/Villejoubert-G/Service civique 2015-2016/R/Relevesarrhpur/Arrh267_Pres_abs.csv",header=T,sep=";",dec=",")
#Création d'un data frame à 1 colonne contenant les numéros de relevés#
Num<-Arrhtr3_Num[,1]
#Data frame contenant les relevés (coeff+sp) et le numéro des relevés
Arrh<-cbind(Num,Arrhtr3)
##########################################################
#####Traitement tableau des Arrhenatheretea###############
##########################################################
library(ade4)
library(vegan)
###
#AFC#
###
#####
AFC_Arrhtr<-dudi.coa(Arrhtr3)
2
names(AFC_Arrhtr)
AFC_Arrhtr$eig
sum(AFC_Arrhtr$eig[1:2])/sum(AFC_Arrhtr$eig)
#Affichage des valeurs propres#
A<-(AFC_Arrhtr$eig/sum(AFC_Arrhtr$eig))*100
barplot(A,ylab="% d'inertie",names.arg=round(A,1),cex.names =0.6,las=2)
title("Eboulis des valeurs propres en %")
##las pour la disposition de la légende des axes.
##0: Parallèles aux axes, 1: Horizontales, 2: Perpendiculaires aux axes, 3: Verticales
#Valeurs propres en %#
round(AFC_Arrhtr$eig/sum(AFC_Arrhtr$eig)*100,2)
#Représentation AFC#
s.label(AFC_Arrhtr$co, clabel=0.7)
s.label(AFC_Arrhtr$li, clabel=0.7)
scatter(AFC_Arrhtr)
#Contributions relatives#
inertia.dudi(AFC_Arrhtr,col.inertia = T)$col.abs #pour colonnes#
inertia.dudi(AFC_Arrhtr,row.inertia = T)$row.abs #pour les lignes#
#
###################
##CAH méthode de Ward##
###################
#####
#Calcul du tableau des distances pour les relevés#
dc2<-dist(AFC_Arrhtr$li, method ="euclidean", diag=FALSE, upper=FALSE)
##AFC_Arrhtr$li= contient les variables de l'AFC#
##methode= calcul des distances, ici des distances euclidiennes#
##diag=indique si la diagonale des distances de la matrice doit être affichée#
##upper=triangle des distances doit être affiché#
#Dendrogramme#
hier2<-hclust(dc2,"ward.D")
plot(hier2,hang=-1,main='cluster')
#Nombres de classes#
k=10
rect.hclust(hier2,k, border='blue')
##hclust() permet de dessiner le dendrogramme#
##"ward.D"-> méthode que l'on va utiliser, autre par ex:UPGMA#
##rect.hclust () permet d'afficher des rectangles autour des classes sur le dendro#
##k=nb de classe#
##border=couleur de la bordure du rect#
#Récupération des groupes (k classes)#
cl2<-cutree(hier2,k)
cl2
#Importation des librairies nécessaires à la réalisation de la commande#
library(ggplot2)
library(ggdendro) #pour dendro_data
#Conversion pour lecture avec ggplot
dendr<- dendro_data(hier2, type="rectangle")
#Data frame contenant numéro relevé + Numéro de groupe selon coupe dendro
cl2.df <- data.frame(label=rownames(Arrh), cluster=factor(cl2))
#Execution commande
dendr[["labels"]]<- merge(dendr[["labels"]],cl2.df, by="label")
rect <- aggregate(x~cluster,label(dendr),range)
rect <- data.frame(rect$cluster,rect$x)
ymax <- mean(hier2$height[length(hier2$height)-((k-2):(k-1))])
#Création du dendrogramme avec les groupes identifiés selon une couleur#
#label=laber pour avoir les numéros de relevés, =NA pour ne rien avoir
ggplot() +
geom_segment(data=segment(dendr), aes(x=x, y=y, xend=xend, yend=yend)) +
geom_text(data=label(dendr), aes(x, y, label=label, hjust=0, color=cluster),
size=3) +
geom_rect(data=rect, aes(xmin=X1-.3, xmax=X2+.3, ymin=0, ymax=ymax),
color=rect$rect.cluster, fill=NA)+
geom_hline(yintercept=0.33, color="red")+
theme_dendro()
## pour retourner le dendro ajouter "+coord_flip() + scale_y_reverse(expand=c(0.2, 0)) +" |
Partager