Set up
library(igraph)
library(tidyverse)
IMPORT
Your data is an edgelist
Undirected, unweighted edges
karate_el <- read.csv('data/karate_el.csv', header = FALSE)
graph_from_data_frame(karate_el, directed = FALSE)
## IGRAPH ee8ffdf UN-- 34 78 --
## + attr: name (v/c)
## + edges from ee8ffdf (vertex names):
## [1] Mr Hi --Actor 2 Mr Hi --Actor 3 Mr Hi --Actor 4 Mr Hi --Actor 5
## [5] Mr Hi --Actor 6 Mr Hi --Actor 7 Mr Hi --Actor 8 Mr Hi --Actor 9
## [9] Mr Hi --Actor 11 Mr Hi --Actor 12 Mr Hi --Actor 13 Mr Hi --Actor 14
## [13] Mr Hi --Actor 18 Mr Hi --Actor 20 Mr Hi --Actor 22 Mr Hi --Actor 32
## [17] Actor 2--Actor 3 Actor 2--Actor 4 Actor 2--Actor 8 Actor 2--Actor 14
## [21] Actor 2--Actor 18 Actor 2--Actor 20 Actor 2--Actor 22 Actor 2--Actor 31
## [25] Actor 3--Actor 4 Actor 3--Actor 8 Actor 3--Actor 9 Actor 3--Actor 10
## [29] Actor 3--Actor 14 Actor 3--Actor 28 Actor 3--Actor 29 Actor 3--Actor 33
## + ... omitted several edges
Directed, unweighted edges
karate_el <- read.csv('data/karate_el.csv', header = FALSE)
graph_from_data_frame(karate_el, directed = TRUE)
## IGRAPH 4fe1cd7 DN-- 34 78 --
## + attr: name (v/c)
## + edges from 4fe1cd7 (vertex names):
## [1] Mr Hi ->Actor 2 Mr Hi ->Actor 3 Mr Hi ->Actor 4 Mr Hi ->Actor 5
## [5] Mr Hi ->Actor 6 Mr Hi ->Actor 7 Mr Hi ->Actor 8 Mr Hi ->Actor 9
## [9] Mr Hi ->Actor 11 Mr Hi ->Actor 12 Mr Hi ->Actor 13 Mr Hi ->Actor 14
## [13] Mr Hi ->Actor 18 Mr Hi ->Actor 20 Mr Hi ->Actor 22 Mr Hi ->Actor 32
## [17] Actor 2->Actor 3 Actor 2->Actor 4 Actor 2->Actor 8 Actor 2->Actor 14
## [21] Actor 2->Actor 18 Actor 2->Actor 20 Actor 2->Actor 22 Actor 2->Actor 31
## [25] Actor 3->Actor 4 Actor 3->Actor 8 Actor 3->Actor 9 Actor 3->Actor 10
## [29] Actor 3->Actor 14 Actor 3->Actor 28 Actor 3->Actor 29 Actor 3->Actor 33
## + ... omitted several edges
Undirected, weighted edges
karate_el <- read.csv('data/karate_el_weights.csv', header = TRUE)
graph_from_data_frame(karate_el, directed = FALSE)
## IGRAPH 54d89d8 UNW- 34 78 --
## + attr: name (v/c), weight (e/n)
## + edges from 54d89d8 (vertex names):
## [1] Mr Hi --Actor 2 Mr Hi --Actor 3 Mr Hi --Actor 4 Mr Hi --Actor 5
## [5] Mr Hi --Actor 6 Mr Hi --Actor 7 Mr Hi --Actor 8 Mr Hi --Actor 9
## [9] Mr Hi --Actor 11 Mr Hi --Actor 12 Mr Hi --Actor 13 Mr Hi --Actor 14
## [13] Mr Hi --Actor 18 Mr Hi --Actor 20 Mr Hi --Actor 22 Mr Hi --Actor 32
## [17] Actor 2--Actor 3 Actor 2--Actor 4 Actor 2--Actor 8 Actor 2--Actor 14
## [21] Actor 2--Actor 18 Actor 2--Actor 20 Actor 2--Actor 22 Actor 2--Actor 31
## [25] Actor 3--Actor 4 Actor 3--Actor 8 Actor 3--Actor 9 Actor 3--Actor 10
## [29] Actor 3--Actor 14 Actor 3--Actor 28 Actor 3--Actor 29 Actor 3--Actor 33
## + ... omitted several edges
Directed, weighted edges
karate_el <- read.csv('data/karate_el_weights.csv', header = TRUE)
graph_from_data_frame(karate_el, directed = TRUE)
## IGRAPH 5f9ca16 DNW- 34 78 --
## + attr: name (v/c), weight (e/n)
## + edges from 5f9ca16 (vertex names):
## [1] Mr Hi ->Actor 2 Mr Hi ->Actor 3 Mr Hi ->Actor 4 Mr Hi ->Actor 5
## [5] Mr Hi ->Actor 6 Mr Hi ->Actor 7 Mr Hi ->Actor 8 Mr Hi ->Actor 9
## [9] Mr Hi ->Actor 11 Mr Hi ->Actor 12 Mr Hi ->Actor 13 Mr Hi ->Actor 14
## [13] Mr Hi ->Actor 18 Mr Hi ->Actor 20 Mr Hi ->Actor 22 Mr Hi ->Actor 32
## [17] Actor 2->Actor 3 Actor 2->Actor 4 Actor 2->Actor 8 Actor 2->Actor 14
## [21] Actor 2->Actor 18 Actor 2->Actor 20 Actor 2->Actor 22 Actor 2->Actor 31
## [25] Actor 3->Actor 4 Actor 3->Actor 8 Actor 3->Actor 9 Actor 3->Actor 10
## [29] Actor 3->Actor 14 Actor 3->Actor 28 Actor 3->Actor 29 Actor 3->Actor 33
## + ... omitted several edges
Your data is an adjacency matrix
Undirected, unweighted edges
karate_am <- read.csv('data/karate_adj.csv', header = TRUE, row.names = 1)
karate_am <- as.matrix(karate_am)
graph_from_adjacency_matrix(karate_am, mode = 'undirected')
## IGRAPH 68cfb8b UN-- 34 78 --
## + attr: name (v/c)
## + edges from 68cfb8b (vertex names):
## [1] Mr_Hi --Actor_2 Mr_Hi --Actor_3 Mr_Hi --Actor_4 Mr_Hi --Actor_5
## [5] Mr_Hi --Actor_6 Mr_Hi --Actor_7 Mr_Hi --Actor_8 Mr_Hi --Actor_9
## [9] Mr_Hi --Actor_11 Mr_Hi --Actor_12 Mr_Hi --Actor_13 Mr_Hi --Actor_14
## [13] Mr_Hi --Actor_18 Mr_Hi --Actor_20 Mr_Hi --Actor_22 Mr_Hi --Actor_32
## [17] Actor_2--Actor_3 Actor_2--Actor_4 Actor_2--Actor_8 Actor_2--Actor_14
## [21] Actor_2--Actor_18 Actor_2--Actor_20 Actor_2--Actor_22 Actor_2--Actor_31
## [25] Actor_3--Actor_4 Actor_3--Actor_8 Actor_3--Actor_9 Actor_3--Actor_10
## [29] Actor_3--Actor_14 Actor_3--Actor_28 Actor_3--Actor_29 Actor_3--Actor_33
## + ... omitted several edges
Directed, unweighted edges
karate_am <- read.csv('data/karate_adj.csv', header = TRUE, row.names = 1)
karate_am <- as.matrix(karate_am)
graph_from_adjacency_matrix(karate_am, mode = 'directed')
## IGRAPH a0c3825 DN-- 34 156 --
## + attr: name (v/c)
## + edges from a0c3825 (vertex names):
## [1] Mr_Hi ->Actor_2 Mr_Hi ->Actor_3 Mr_Hi ->Actor_4 Mr_Hi ->Actor_5
## [5] Mr_Hi ->Actor_6 Mr_Hi ->Actor_7 Mr_Hi ->Actor_8 Mr_Hi ->Actor_9
## [9] Mr_Hi ->Actor_11 Mr_Hi ->Actor_12 Mr_Hi ->Actor_13 Mr_Hi ->Actor_14
## [13] Mr_Hi ->Actor_18 Mr_Hi ->Actor_20 Mr_Hi ->Actor_22 Mr_Hi ->Actor_32
## [17] Actor_2->Mr_Hi Actor_2->Actor_3 Actor_2->Actor_4 Actor_2->Actor_8
## [21] Actor_2->Actor_14 Actor_2->Actor_18 Actor_2->Actor_20 Actor_2->Actor_22
## [25] Actor_2->Actor_31 Actor_3->Mr_Hi Actor_3->Actor_2 Actor_3->Actor_4
## [29] Actor_3->Actor_8 Actor_3->Actor_9 Actor_3->Actor_10 Actor_3->Actor_14
## + ... omitted several edges
Undirected, weighted edges
karate_am <- read.csv('data/karate_adj.csv', header = TRUE, row.names = 1)
karate_am <- as.matrix(karate_am)
graph_from_adjacency_matrix(karate_am, mode = 'undirected', weighted = 'weight')
## IGRAPH d4302b2 UNW- 34 78 --
## + attr: name (v/c), weight (e/n)
## + edges from d4302b2 (vertex names):
## [1] Mr_Hi --Actor_2 Mr_Hi --Actor_3 Mr_Hi --Actor_4 Mr_Hi --Actor_5
## [5] Mr_Hi --Actor_6 Mr_Hi --Actor_7 Mr_Hi --Actor_8 Mr_Hi --Actor_9
## [9] Mr_Hi --Actor_11 Mr_Hi --Actor_12 Mr_Hi --Actor_13 Mr_Hi --Actor_14
## [13] Mr_Hi --Actor_18 Mr_Hi --Actor_20 Mr_Hi --Actor_22 Mr_Hi --Actor_32
## [17] Actor_2--Actor_3 Actor_2--Actor_4 Actor_2--Actor_8 Actor_2--Actor_14
## [21] Actor_2--Actor_18 Actor_2--Actor_20 Actor_2--Actor_22 Actor_2--Actor_31
## [25] Actor_3--Actor_4 Actor_3--Actor_8 Actor_3--Actor_9 Actor_3--Actor_10
## [29] Actor_3--Actor_14 Actor_3--Actor_28 Actor_3--Actor_29 Actor_3--Actor_33
## + ... omitted several edges
Directed, weighted edges
karate_am <- read.csv('data/karate_adj_weights.csv', header = TRUE, row.names = 1)
karate_am <- as.matrix(karate_am)
graph_from_adjacency_matrix(karate_am, mode = 'directed', weighted = 'weight')
## IGRAPH 96f8700 DNW- 34 103 --
## + attr: name (v/c), weight (e/n)
## + edges from 96f8700 (vertex names):
## [1] Mr_Hi ->Actor_9 Mr_Hi ->Actor_14 Mr_Hi ->Actor_22 Mr_Hi ->Actor_25
## [5] Mr_Hi ->Actor_30 Actor_2 ->Actor_9 Actor_2 ->Actor_12 Actor_2 ->Actor_18
## [9] Actor_2 ->Actor_32 Actor_3 ->Actor_12 Actor_3 ->Actor_13 Actor_3 ->Actor_20
## [13] Actor_3 ->Actor_21 Actor_3 ->Actor_25 Actor_4 ->Actor_10 Actor_4 ->Actor_18
## [17] Actor_5 ->Actor_3 Actor_5 ->John_A Actor_6 ->Actor_3 Actor_6 ->Actor_13
## [21] Actor_6 ->Actor_28 Actor_6 ->Actor_29 Actor_7 ->Actor_13 Actor_7 ->Actor_15
## [25] Actor_7 ->Actor_26 Actor_8 ->Actor_15 Actor_8 ->Actor_17 Actor_8 ->Actor_26
## [29] Actor_9 ->Actor_14 Actor_10->Actor_8 Actor_10->Actor_25 Actor_11->Actor_16
## + ... omitted several edges
EXPORT
g <- graph_from_literal(Alex-Beth,
Chris-Doug, Eliza-Alex,
Beth-Doug, Alex-Chris,
Doug-Alex)
save(g, file = 'data/fivefriends.RData') # save network as a R object (.RData)
rm(g) # remove the network object from the workspace
load('data/fivefriends.RData') # load the .RData file
LS0tCnRpdGxlOiAnUEw0MjQ2IE5ldHdvcmtzIGluIFBzeWNob2xvZ3k6IFR1dG9yaWFsIDEnCmF1dGhvcjogIkRyLiBDeW50aGlhIFMuIFEuIFNpZXciCnN1YnRpdGxlOiAnVmlkZW8gMzogSW5wdXQvT3V0cHV0JwpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogVFJVRQogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKLS0tCiMgU2V0IHVwIAoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKa25pdHI6Om9wdHNfY2h1bmskc2V0KG1lc3NhZ2UgPSBGQUxTRSkKa25pdHI6Om9wdHNfY2h1bmskc2V0KHdhcm5pbmcgPSBGQUxTRSkKYGBgCgpgYGB7cn0KbGlicmFyeShpZ3JhcGgpCmxpYnJhcnkodGlkeXZlcnNlKQpgYGAKCiMgSU1QT1JUCgojIyBZb3VyIGRhdGEgaXMgYW4gZWRnZWxpc3QgCgojIyMgVW5kaXJlY3RlZCwgdW53ZWlnaHRlZCBlZGdlcyAKCmBgYHtyfQprYXJhdGVfZWwgPC0gcmVhZC5jc3YoJ2RhdGEva2FyYXRlX2VsLmNzdicsIGhlYWRlciA9IEZBTFNFKQoKZ3JhcGhfZnJvbV9kYXRhX2ZyYW1lKGthcmF0ZV9lbCwgZGlyZWN0ZWQgPSBGQUxTRSkKYGBgCgojIyMgRGlyZWN0ZWQsIHVud2VpZ2h0ZWQgZWRnZXMgCgpgYGB7cn0Ka2FyYXRlX2VsIDwtIHJlYWQuY3N2KCdkYXRhL2thcmF0ZV9lbC5jc3YnLCBoZWFkZXIgPSBGQUxTRSkKCmdyYXBoX2Zyb21fZGF0YV9mcmFtZShrYXJhdGVfZWwsIGRpcmVjdGVkID0gVFJVRSkKYGBgCgojIyMgVW5kaXJlY3RlZCwgd2VpZ2h0ZWQgZWRnZXMgCgpgYGB7cn0Ka2FyYXRlX2VsIDwtIHJlYWQuY3N2KCdkYXRhL2thcmF0ZV9lbF93ZWlnaHRzLmNzdicsIGhlYWRlciA9IFRSVUUpCgpncmFwaF9mcm9tX2RhdGFfZnJhbWUoa2FyYXRlX2VsLCBkaXJlY3RlZCA9IEZBTFNFKQpgYGAKCiMjIyBEaXJlY3RlZCwgd2VpZ2h0ZWQgZWRnZXMgCgpgYGB7cn0Ka2FyYXRlX2VsIDwtIHJlYWQuY3N2KCdkYXRhL2thcmF0ZV9lbF93ZWlnaHRzLmNzdicsIGhlYWRlciA9IFRSVUUpCgpncmFwaF9mcm9tX2RhdGFfZnJhbWUoa2FyYXRlX2VsLCBkaXJlY3RlZCA9IFRSVUUpCmBgYAoKIyMgWW91ciBkYXRhIGlzIGFuIGFkamFjZW5jeSBtYXRyaXggCgojIyMgVW5kaXJlY3RlZCwgdW53ZWlnaHRlZCBlZGdlcyAKCmBgYHtyfQprYXJhdGVfYW0gPC0gcmVhZC5jc3YoJ2RhdGEva2FyYXRlX2Fkai5jc3YnLCBoZWFkZXIgPSBUUlVFLCByb3cubmFtZXMgPSAxKQoKa2FyYXRlX2FtIDwtIGFzLm1hdHJpeChrYXJhdGVfYW0pCgpncmFwaF9mcm9tX2FkamFjZW5jeV9tYXRyaXgoa2FyYXRlX2FtLCBtb2RlID0gJ3VuZGlyZWN0ZWQnKQpgYGAKCiMjIyBEaXJlY3RlZCwgdW53ZWlnaHRlZCBlZGdlcyAKCmBgYHtyfQprYXJhdGVfYW0gPC0gcmVhZC5jc3YoJ2RhdGEva2FyYXRlX2Fkai5jc3YnLCBoZWFkZXIgPSBUUlVFLCByb3cubmFtZXMgPSAxKQoKa2FyYXRlX2FtIDwtIGFzLm1hdHJpeChrYXJhdGVfYW0pCgpncmFwaF9mcm9tX2FkamFjZW5jeV9tYXRyaXgoa2FyYXRlX2FtLCBtb2RlID0gJ2RpcmVjdGVkJykKYGBgCgojIyMgVW5kaXJlY3RlZCwgd2VpZ2h0ZWQgZWRnZXMgCgpgYGB7cn0Ka2FyYXRlX2FtIDwtIHJlYWQuY3N2KCdkYXRhL2thcmF0ZV9hZGouY3N2JywgaGVhZGVyID0gVFJVRSwgcm93Lm5hbWVzID0gMSkKCmthcmF0ZV9hbSA8LSBhcy5tYXRyaXgoa2FyYXRlX2FtKQoKZ3JhcGhfZnJvbV9hZGphY2VuY3lfbWF0cml4KGthcmF0ZV9hbSwgbW9kZSA9ICd1bmRpcmVjdGVkJywgd2VpZ2h0ZWQgPSAnd2VpZ2h0JykKYGBgCgojIyMgRGlyZWN0ZWQsIHdlaWdodGVkIGVkZ2VzIAoKYGBge3J9CmthcmF0ZV9hbSA8LSByZWFkLmNzdignZGF0YS9rYXJhdGVfYWRqX3dlaWdodHMuY3N2JywgaGVhZGVyID0gVFJVRSwgcm93Lm5hbWVzID0gMSkKCmthcmF0ZV9hbSA8LSBhcy5tYXRyaXgoa2FyYXRlX2FtKQoKZ3JhcGhfZnJvbV9hZGphY2VuY3lfbWF0cml4KGthcmF0ZV9hbSwgbW9kZSA9ICdkaXJlY3RlZCcsIHdlaWdodGVkID0gJ3dlaWdodCcpCmBgYAoKIyBFWFBPUlQgCgpgYGB7cn0KZyA8LSBncmFwaF9mcm9tX2xpdGVyYWwoQWxleC1CZXRoLCAKICAgICAgICAgICAgICAgICAgICAgICAgQ2hyaXMtRG91ZywgRWxpemEtQWxleCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJldGgtRG91ZywgQWxleC1DaHJpcywKICAgICAgICAgICAgICAgICAgICAgICAgRG91Zy1BbGV4KQoKc2F2ZShnLCBmaWxlID0gJ2RhdGEvZml2ZWZyaWVuZHMuUkRhdGEnKSAjIHNhdmUgbmV0d29yayBhcyBhIFIgb2JqZWN0ICguUkRhdGEpCgpybShnKSAjIHJlbW92ZSB0aGUgbmV0d29yayBvYmplY3QgZnJvbSB0aGUgd29ya3NwYWNlCgpsb2FkKCdkYXRhL2ZpdmVmcmllbmRzLlJEYXRhJykgIyBsb2FkIHRoZSAuUkRhdGEgZmlsZSAKYGBgCgo=