Avviare R da un terminale con l'omonimo comando e, se non già fatto, installare il pacchetto igraph per l'analisi dei grafi col comando:
install.packages("igraph")
Caricate il pacchetto igraph:
library(igraph)
Leggiamo un grafo diretto. Il grafo è scritto nel file graph1.gml in un formato GML (Graph Modeling Language):
g1 = read.graph(file="graph1.gml", format="gml")
Creiamo il layout di visualizzazione e salviamo le coordinate in una variabile:
coords1 = layout.fruchterman.reingold(g1)
Quindi visualizziamo il grafo:
plot(g1, layout=coords1, vertex.size=10)
Facciamo lo stesso con un grafo indiretto scritto nel file graph2.gml:
g2 = read.graph(file="graph2.gml", format="gml") coords2 = layout.fruchterman.reingold(g2) plot(g2, layout=coords2, vertex.size=10)
Calcoliamo il grado entrante, uscente e totale dei nodi del grafo diretto:
d.in = degree(g1, mode="in") d.out = degree(g1, mode="out") d.tot = degree(g1, mode="tot")
Verifichiamo che la somma dei gradi entranti oppure uscenti è il numero di archi:
sum(d.in) sum(d.out) ecount(g1)
Calcoliamo il grado dei nodi del grafo indiretto:
d = degree(g2)
Verifichiamo che la somma dei gradi è il doppio del numero di archi:
sum(d) ecount(g2)