Commit 86ef6c24 authored by Ednomesor's avatar Ednomesor

MAJ QUANTI

parent aff7b7af
......@@ -7,25 +7,26 @@
#Je nettoie mon espace de travail
rm(list=ls())
setwd("~/Bureau/Formation/Nice_GDR/nice1/script_R/")
setwd("~/Documents/framagit/cours_SNA/script_R/")
#J'active mes extensions
library(igraph)
library(colorRamps)
#Je mets mes données dans un tupperware
#Chargement des données
liens<-read.csv("data/stormofswords/stormofswords_liens.csv",sep=",", header=TRUE)
noeuds<-read.csv("data/stormofswords/stormofswords_noeuds.csv",sep=",", header=TRUE)
#transformation en objet igraph
net<- graph_from_data_frame(d=liens, vertices=noeuds, directed = F)
#Aïe ! J'ai besoin de remodeler mes dataframes
#Aïe ! Le pb est que l'id ne correspond pas au valeur des listes de liens
#J'ai besoin de remodeler mes dataframes
#J'utilise la fonction subset pour n'utiliser que les colonnes utiles
liens<-subset(liens, select = c("Source", "Target", "Weight"))
noeuds<-subset(noeuds, select = c("Nom", "Sexe", "Maison", "Maison_code"))
liens<-subset(liens, select = c("source", "target", "weight"))
noeuds<-subset(noeuds, select = c("nom", "sexe", "maison", "maison_code"))
#transformation en objet igraph
#normalement là tout se passera bien
net<- graph_from_data_frame(d=liens, vertices=noeuds, directed = F)
####Rappel####
......@@ -40,11 +41,10 @@ V(net)
#S'il y a des données attributaires arêtes/sommets on peut y accéder de cette façon
E(net)$weight
V(net)$Sexe
V(net)$Maison
V(net)$sexe
V(net)$maison
####A propos des fichiers####
#Il me faut une question de recherche
#Comment ce fichier a-t-il été constitué ? De quoi s'agit-il ?
#Etude du 3e livre du trône de fer
......@@ -52,33 +52,74 @@ V(net)$Maison
#Un lien entre deux personnages a été créé si leur nom apparait à un distance de 15 mots dans le livre
#Pour plus d'information sur la constitution du fichier : https://www.macalester.edu/~abeverid/thrones.html
#### CENTRALITE DE DEGRE ####
#Les personnnages centraux - ceux qui ont un grand nombre de liens incidents
V(net)$DC<-degree(net,
mode = c("all"),
loops = TRUE,
normalized = TRUE)
####MESURES SUR LE GRAPHE####
#Densité du graphe
graph.density(net)
#Diamètre du graphe
diameter(net)
#Transitivité - clustering coefficient
transitivity(net, type=c("globalundirected"))
V(net)$TRANS<-transitivity(net, type=c("localundirected"))
#### MESURES SUR LES SOMMETS ####
###Centralité de degré###
#Les personnnages les + connectés - noeuds du réseau ayant un grand nombre de liens incidents
V(net)$DC<-degree(net)
#Ce qui donne les mesures suivantes
V(net)$DC
#Personnaliser la visualisation selon cette mesure
#taille des noeuds
plot(net,
vertex.size=V(net)$DC,
vertex.color="purple",
vertex.label = V(net)$name,
vertex.label.color="grey10",
layout = layout.fruchterman.reingold(net)
)
#taille du label du noeud
plot(net,
vertex.size=V(net)$DC*20,
vertex.size=V(net)$DC/8,
vertex.color="purple",
vertex.label = V(net)$name,
vertex.label.cex=V(net)$DC/18,
vertex.label.color="grey10",
layout = layout.fruchterman.reingold(net)
)
#On peut récupérer ces valeurs dans un dataframe
test<- data.frame(
deg.centralite = V(net)$DC,
row.names = V(net)$name
)
#On peut enlever les noeuds les moins importants
net2<-delete_vertices(net, V(net)$DC<0.01)
plot(net2,
vertex.size=V(net2)$DC*20,
vertex.color="purple",
vertex.label = V(net2)$name,
vertex.label.cex=V(net2)$DC*5,
vertex.label.color="grey10",
layout = layout.fruchterman.reingold(net2)
)
#### CENTRALITE D'INTERMEDIARITE ####
V(net)$BET<-betweenness(net)
#On peut récupérer ces valeurs dans un dataframe
test<- data.frame(
deg.centralite = V(net)$DC,
deg.intermed = V(net)$BET,
row.names = V(net)$name
)
#Visualisation des résultats
plot(net,
vertex.size=V(net)$BET/190,
vertex.color="green",
......@@ -86,3 +127,55 @@ plot(net,
vertex.label.color="grey10",
layout = layout.fruchterman.reingold(net)
)
####CENTRALITE DE PROXIMITE####
#Closeness Centrality#
V(net)$CLO<-closeness(net)
#On peut récupérer ces valeurs dans un dataframe
test<- data.frame(
deg.centralite = V(net)$DC,
deg.intermed = V(net)$BET,
deg.close = V(net)$CLO,
row.names = V(net)$name
)
####CENTRALITE EN VECTEUR PROPRE
#Eigenvector Centrality#
V(net)$EIGEN<-evcent(net)$vector
#On peut récupérer ces valeurs dans un dataframe
test<- data.frame(
deg.centralite = V(net)$DC,
deg.intermed = V(net)$BET,
deg.close = V(net)$CLO,
eigen.centralite = V(net)$EIGEN,
row.names = V(net)$name
)
####POINT D'ARTICULATION DU RESEAU ####
articulation_points(net)
####MESURES LIENS####
#Edge betweenness
E(net)$EDG.BET<-edge.betweenness(net)
#Longueur du chemin moyen
average.path.length(net)
#Chemin plus court
df.shortest<-as.data.frame(shortest.paths(net))
#### CLIQUES ####
#Taille de la plus grande clique
clique_num(net)
# Noeud impliqué dans la plus grande clique
largest_cliques(net)
#Récupérer toutes les mesures du graphe dans un dataframe
#On peut vouloir ces résultats dans un dataframe
df.allmesures<-as_long_data_frame(net)
#R. Letricot - Quantilille
# Initiation à l'analyse de réseau
# 27 juin 2017
#Réseau bipartite
library(bipartite)
#Création d'un réseau bipartite
#Chargement d'un réseau bipartite
#Visualisation
#Mesuses
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment