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=