# Charger les librairies nécessaires library(igraph) library(igraphdata) # Charger le jeu de données UKfaculty data(UKfaculty) # Afficher la structure des données str(UKfaculty) # Créer le graphe à partir des données g <- graph_from_data_frame(UKfaculty, directed = TRUE) # Visualiser le graphe plot(g, vertex.size = 5, vertex.label.cex = 0.7, vertex.color = "lightblue", edge.arrow.size = 0.5, main = "Graphe des Facultés UK") # Nombre de nœuds num_nodes <- gorder(g) cat("Nombre de nœuds dans le graphe :", num_nodes, "\n") # Vérifier si le graphe est dirigé is_directed <- is.directed(g) cat("Le graphe est dirigé :", is_directed, "\n") # Calcul du nombre d'arrêtes num_edges <- gsize(g) cat("Nombre d'arrêtes dans le graphe :", num_edges, "\n") # Calcul de la centralité de degré centrality_degree <- degree(g) cat("Centralité de degré des nœuds :\n") print(centrality_degree) # Transformer le graphe en non dirigé g_undirected <- as.undirected(g) # Appliquer l'algorithme de Louvain communities <- cluster_louvain(g_undirected) # Visualiser le graphe avec les communautés plot(g_undirected, vertex.size = 5, vertex.label.cex = 0.7, vertex.color = membership(communities), main = "Communautés dans le Graphe") # Nombre de nœuds dans chaque groupe group_sizes <- table(membership(communities)) cat("Nombre de nœuds dans chaque groupe :\n") print(group_sizes) # Trouver le groupe avec le plus de nœuds largest_group <- as.numeric(names(which.max(group_sizes))) # Identifier les nœuds dans le groupe le plus grand nodes_to_remove <- V(g_undirected)[membership(communities) == largest_group] # Retirer le groupe du graphe g_reduced <- delete_vertices(g_undirected, nodes_to_remove) # Nombre de nœuds dans le nouveau graphe num_nodes_reduced <- gorder(g_reduced) cat("Nombre de nœuds dans le nouveau graphe :", num_nodes_reduced, "\n") # Visualiser le nouveau graphe plot(g_reduced, vertex.size = 5, vertex.label.cex = 0.7, main = "Nouveau Graphe après retrait du groupe le plus grand") # Calcul de la centralité de degré pour le nouveau graphe centrality_degree_reduced <- degree(g_reduced) cat("Centralité de degré dans le nouveau graphe :\n") print(centrality_degree_reduced) # Comparer les centralités cat("Centralité de degré dans le graphe initial :\n") print(centrality_degree) cat("Centralité de degré dans le nouveau graphe :\n") print(centrality_degree_reduced) # Explication des Changements de Centralité cat("Explication des Changements de Centralité :\n") cat("Les valeurs de centralité peuvent changer en raison du retrait de nœuds, de la modification des chemins entre les nœuds restants, et de la perte de connexions importantes.\n")
Standard input is empty
IGRAPH D-W- 81 817 -- + attr: Type (g/c), Date (g/c), Citation (g/c), Author (g/c), Group | (v/n), weight (e/n) + edges: 1 -> 4 36 44 45 61 62 2 -> 15 18 21 25 29 31 32 35 37 39 41 43 46 51 52 79 80 3 -> 17 53 59 61 4 -> 1 3 36 45 53 60 61 74 75 78 5 -> 6 7 9 10 12 13 16 22 23 27 28 37 38 40 42 48 49 50 52 61 64 65 67 68 69 72 76 77 6 -> 7 29 30 47 50 58 66 68 69 7 -> 6 10 12 13 16 18 23 27 29 30 42 47 63 68 69 72 77 8 -> 31 41 9 -> 3 4 17 45 53 59 60 61 10 -> 5 7 13 22 23 27 28 42 49 65 68 69 71 72 76 77 11 -> 12 -> 16 22 23 49 69 77 13 -> 5 7 12 16 21 23 27 28 33 49 68 69 77 14 -> 20 26 51 56 80 15 -> 2 14 18 19 20 21 25 29 31 34 35 37 39 41 43 46 51 54 57 58 79 80 16 -> 12 13 33 40 65 72 17 -> 3 4 45 53 54 59 61 62 18 -> 2 46 58 19 -> 18 21 29 31 39 43 46 54 57 58 79 20 -> 2 6 8 14 18 19 25 26 31 41 51 54 56 80 21 -> 2 8 10 19 25 29 31 34 35 39 41 46 50 51 70 79 22 -> 7 10 12 21 29 30 47 58 66 69 76 77 23 -> 7 12 22 27 49 69 77 24 -> 32 48 62 25 -> 2 39 47 54 26 -> 2 14 20 21 29 31 35 37 51 52 54 56 80 27 -> 5 7 10 13 16 19 22 23 33 35 37 42 49 52 58 63 65 67 68 69 77 28 -> 10 13 42 47 69 77 29 -> 2 4 6 7 8 14 15 18 19 20 21 22 23 24 26 27 31 32 34 35 37 39 41 43 46 50 51 52 54 55 57 58 62 64 66 69 70 71 77 79 80 30 -> 6 7 10 22 63 66 31 -> 2 8 19 21 25 29 32 35 37 39 41 43 46 51 57 79 32 -> 24 33 -> 10 12 13 16 23 27 37 38 40 42 68 69 71 72 77 34 -> 15 19 21 25 29 31 35 37 43 46 54 58 35 -> 2 15 18 21 29 31 41 46 50 54 57 69 79 36 -> 1 3 45 53 74 37 -> 2 5 7 9 10 13 16 18 19 21 27 29 31 32 33 35 38 40 42 43 48 49 50 52 54 55 57 58 60 64 67 69 70 77 79 81 38 -> 1 2 10 17 33 37 45 50 54 59 73 74 78 39 -> 18 19 21 25 29 31 42 46 54 58 40 -> 7 10 12 16 23 27 33 65 69 71 72 77 41 -> 8 21 31 42 -> 7 10 16 23 28 49 65 69 71 72 76 77 43 -> 2 8 12 13 15 18 19 21 25 29 31 34 35 37 41 46 50 51 52 54 57 60 79 44 -> 1 36 45 53 62 45 -> 1 36 61 46 -> 2 11 15 18 19 21 29 31 34 39 54 57 58 62 79 47 -> 7 28 63 77 48 -> 5 27 52 54 55 64 67 70 49 -> 12 13 23 33 42 52 53 68 69 76 77 50 -> 18 21 35 37 38 43 54 70 51 -> 14 18 20 21 26 29 31 37 54 56 58 80 52 -> 1 2 5 9 18 21 24 26 27 29 32 33 35 37 43 48 49 50 54 55 57 62 64 69 70 75 77 53 -> 75 54 -> 2 37 50 55 -> 24 32 48 56 64 56 -> 14 20 26 80 57 -> 2 15 18 29 31 37 39 43 46 51 52 70 79 58 -> 11 18 19 21 27 35 46 50 51 54 76 59 -> 17 81 60 -> 9 61 -> 1 4 45 53 59 75 62 -> 1 2 7 9 10 18 21 23 24 25 27 29 31 32 37 42 46 49 52 54 55 57 61 63 64 65 69 70 74 75 76 77 79 80 63 -> 7 47 77 64 -> 5 24 32 48 52 55 65 -> 10 42 66 -> 6 22 30 67 -> 5 58 68 -> 5 6 7 10 12 13 16 23 27 28 33 40 42 49 66 69 77 69 -> 10 12 18 23 27 29 35 42 47 49 59 68 77 70 -> 2 21 37 49 50 54 57 62 69 77 71 -> 10 16 33 40 42 69 77 72 -> 6 7 13 16 33 42 49 69 76 77 73 -> 38 81 74 -> 4 36 38 59 61 75 81 75 -> 4 17 38 53 61 62 74 76 -> 10 42 58 72 77 -> 5 7 10 12 13 16 23 27 33 40 42 47 49 63 65 68 69 71 72 76 78 -> 4 17 45 59 79 -> 2 18 19 21 29 31 35 39 46 54 80 -> 14 20 26 51 54 56 81 -> 1 38 59 73 74 75
Attaching package: ‘igraph’ The following objects are masked from ‘package:stats’: decompose, spectrum The following object is masked from ‘package:base’: union Error in as.data.frame.default(d) : cannot coerce class ""igraph"" to a data.frame Calls: graph_from_data_frame -> as.data.frame -> as.data.frame.default Execution halted