Option 1: Sept. 11 terrorists. The data are in Sept11_nodes.csv and Sept11_links.csv.

  1. Read the data into links and nodes, and create the network in igraph with graph_from_data_frame().
sept11_links <- read.csv("Sept11_links.csv")
sept11_nodes <- read.csv("Sept11_nodes.csv")

sept11_network<- graph_from_data_frame(sept11_links, vertices = sept11_nodes, directed = F)

Here is the network of September 11th links and nodes, combined into “sept11_network”.

  1. Find the density of the network.
sept11_network %>% 
  edge_density()
[1] 0.07985193

Here is the density of the network, or how closely connected each of the separate connections are. The density of the September 11th network is 0.079, which is not very dense. This means that there are many connections, but they are fairly spread out between all the people.

  1. Make a histogram of the distances in the network.
sept11_network %>% 
  distances() %>% 
  as.vector() %>% 
  as_tibble() %>% 
  plot_ly(x= ~value) %>% 
  add_histogram()

On the histogram above, the value represents how many people each terrorist is connected by. It shows that of the 62 terrorists involved in September 11th, most are connected by 3 people.

  1. Find the legnth of the diameter of the network.
sept11_network %>% 
  get_diameter() %>% 
  length()
[1] 6

The length of the diameter of the network is six, which means that the longest distance between one person and another in the network is through six people. Considering there’s a theory that each person in the world is connected by no more than six degrees of separation, this diameter value shows it’s a fairly dispersed network.

  1. Mutate the following into the nodes data: label, title, degree, and set value = degree.
sept11_nodes <- sept11_nodes %>% 
  mutate(label = name) %>% 
  mutate(title = name) %>% 
  mutate(degree = degree(sept11_network)) %>% 
  mutate(value = degree)

Using the nodes data, I have created new variables (label, title, degree and value), to help see the data more specifically.

  1. Mutate betweenness into the links data, and set it to value.
sept11_links <- sept11_links %>% 
  mutate(betweenness = edge_betweenness(sept11_network)) %>% 
  mutate(value = betweenness)

Using the links data, I have created a new variable from the betweenness of the links. This will show how connected the links between people are.

  1. Create a diagram with visNetwork, with a title and options set for a menu and highlightNearest.
visNetwork(sept11_nodes, sept11_links, main = "Network of September 11th Terrorists") %>% 
   visIgraphLayout(layout = "layout_nicely") %>% 
  visOptions(highlightNearest = T, nodesIdSelection = T)

Here is a visual of the September 11th terrorists. Each group is represented by color. The thicker the line, the stronger the connection between two people. The larger the dot is, the more interconnected the person is, through strength of links and number of connections. It looks as though Mohamed Atta and Marwan Al-Shehhi are the two “densest” connections in the network.

  1. Find the communities in the network, mutate a group column in the nodes data, and create another diagram displaying the colored groups.
sept11_network %>% 
  infomap.community() %>% 
  membership()
                      Samir_Kashk                    Madjid_Sahoune 
                                2                                 2 
                  Fahid_al_Shakri                    Lased_Ben_Heni 
                                2                                 2 
           Essid_Sami_Ben_Khemais             Seifallah_ben_Hassine 
                                2                                 2 
               Mohamed_Bensakhria                    Mehdi_Khammoun 
                                2                                 2 
               Essoussi_Laaroussi                    Tarek_Maaroufi 
                                2                                 2 
                  Haydar_Abu_Doha                      Ahmed_Ressam 
                                2                                 2 
                       Abu_Qatada                         Abu_Walid 
                                3                                 3 
             Jean-Marc_Grandvisir                       Abu_Zubeida 
                                3                                 3 
                   Mizar_Trabelsi                     Djamal_Beghal 
                                3                                 3 
                     Kamel_Daoudi               Jerome_Courtaillier 
                                3                                 3 
               David_Courtaillier                Zacarias_Moussaoui 
                                3                                 3 
        Imad_Eddin_Barakat_Yarkas                Ramzi_Bin_al-Shibh 
                                1                                 1 
                  Mohammed_Belfas                 Abdelghani_Mzoudi 
                                1                                 1 
Ahmed_Khalil_Ibrahim_Samir_Al-Ani           Mustafa_Ahmed_al-Hisawi 
                                1                                 1 
                     Agus_Budiman              Mounir_El_Motassadeq 
                                1                                 1 
                 Zakariya_Essabar                      Mohamed_Atta 
                                1                                 1 
                      Fayez_Ahmed               Mamduh_Mahmud_Salim 
                                1                                 1 
                Mamoun_Darkazanli                       Said_Bahaji 
                                1                                 1 
                      Ziad_Jarrah                  Marwan_Al-Shehhi 
                                1                                 1 
                    Wail_Alshehri                   Waleed_Alshehri 
                                1                                 1 
                  Mohand_Alshehri                      Satam_Suqami 
                                5                                 1 
              Abdul_Aziz_Al-Omari                      Lotfi_Raissi 
                                1                                 6 
                 Ahmed_Al_Haznawi                       Raed_Hijazi 
                                5                                 5 
                  Nabil_al-Marabh                    Hamza_Alghamdi 
                                5                                 5 
                   Ahmed_Alghamdi                     Salem_Alhazmi 
                                5                                 4 
                     Hani_Hanjour                    Bandar_Alhazmi 
                                6                                 6 
          Rayed_Mohammed_Abdullah                   Raisal_Al_Salmi 
                                6                                 6 
                      Majed_Moqed                 Khalid_Al-Mihdhar 
                                4                                 4 
                    Nawaf_Alhazmi                   Osama_Awadallah 
                                4                                 4 
               Abdussattar_Shaikh                      Mohamed_Abdi 
                                4                                 4 
                     Ahmed_Alnami                    Saeed_Alghamdi 
                                5                                 5 
sept11_nodes <- sept11_nodes %>% 
  mutate(group = membership(infomap.community(sept11_network)))

visNetwork(sept11_nodes, sept11_links, main = "Network of September 11th Terrorists") %>% 
  visIgraphLayout(layout = "layout_nicely") %>% 
  visOptions(highlightNearest = T, nodesIdSelection = T, selectedBy = "group")

Here is another visual of the September 11th terrorist network, but with options to refine it by selecting a group of terrorists. Each color represents a group of terrorists connected, and the “id” is the name of the terrorist. There are a few major connections notably in group 1, but in general it is a fairly spread-out network of people.

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKT3B0aW9uIDE6IFNlcHQuIDExIHRlcnJvcmlzdHMuIFRoZSBkYXRhIGFyZSBpbiBTZXB0MTFfbm9kZXMuY3N2IGFuZCBTZXB0MTFfbGlua3MuY3N2LgoKCjEuIFJlYWQgdGhlIGRhdGEgaW50byBsaW5rcyBhbmQgbm9kZXMsIGFuZCBjcmVhdGUgdGhlIG5ldHdvcmsgaW4gaWdyYXBoIHdpdGggZ3JhcGhfZnJvbV9kYXRhX2ZyYW1lKCkuICAKYGBge3J9CnNlcHQxMV9saW5rcyA8LSByZWFkLmNzdigiU2VwdDExX2xpbmtzLmNzdiIpCnNlcHQxMV9ub2RlcyA8LSByZWFkLmNzdigiU2VwdDExX25vZGVzLmNzdiIpCgpzZXB0MTFfbmV0d29yazwtIGdyYXBoX2Zyb21fZGF0YV9mcmFtZShzZXB0MTFfbGlua3MsIHZlcnRpY2VzID0gc2VwdDExX25vZGVzLCBkaXJlY3RlZCA9IEYpCmBgYApIZXJlIGlzIHRoZSBuZXR3b3JrIG9mIFNlcHRlbWJlciAxMXRoIGxpbmtzIGFuZCBub2RlcywgY29tYmluZWQgaW50byAic2VwdDExX25ldHdvcmsiLiAKCjIuIEZpbmQgdGhlIGRlbnNpdHkgb2YgdGhlIG5ldHdvcmsuICAKCmBgYHtyfQpzZXB0MTFfbmV0d29yayAlPiUgCiAgZWRnZV9kZW5zaXR5KCkKYGBgCkhlcmUgaXMgdGhlIGRlbnNpdHkgb2YgdGhlIG5ldHdvcmssIG9yIGhvdyBjbG9zZWx5IGNvbm5lY3RlZCBlYWNoIG9mIHRoZSBzZXBhcmF0ZSBjb25uZWN0aW9ucyBhcmUuIFRoZSBkZW5zaXR5IG9mIHRoZSBTZXB0ZW1iZXIgMTF0aCBuZXR3b3JrIGlzIDAuMDc5LCB3aGljaCBpcyBub3QgdmVyeSBkZW5zZS4gVGhpcyBtZWFucyB0aGF0IHRoZXJlIGFyZSBtYW55IGNvbm5lY3Rpb25zLCBidXQgdGhleSBhcmUgZmFpcmx5IHNwcmVhZCBvdXQgYmV0d2VlbiBhbGwgdGhlIHBlb3BsZS4gCgozLiBNYWtlIGEgaGlzdG9ncmFtIG9mIHRoZSBkaXN0YW5jZXMgaW4gdGhlIG5ldHdvcmsuICAKCmBgYHtyfQpzZXB0MTFfbmV0d29yayAlPiUgCiAgZGlzdGFuY2VzKCkgJT4lIAogIGFzLnZlY3RvcigpICU+JSAKICBhc190aWJibGUoKSAlPiUgCiAgcGxvdF9seSh4PSB+dmFsdWUpICU+JSAKICBhZGRfaGlzdG9ncmFtKCkKYGBgCk9uIHRoZSBoaXN0b2dyYW0gYWJvdmUsIHRoZSB2YWx1ZSByZXByZXNlbnRzIGhvdyBtYW55IHBlb3BsZSBlYWNoIHRlcnJvcmlzdCBpcyBjb25uZWN0ZWQgYnkuIEl0IHNob3dzIHRoYXQgb2YgdGhlIDYyIHRlcnJvcmlzdHMgaW52b2x2ZWQgaW4gU2VwdGVtYmVyIDExdGgsIG1vc3QgYXJlIGNvbm5lY3RlZCBieSAzIHBlb3BsZS4KCjQuIEZpbmQgdGhlIGxlZ250aCBvZiB0aGUgZGlhbWV0ZXIgb2YgdGhlIG5ldHdvcmsuICAKCmBgYHtyfQpzZXB0MTFfbmV0d29yayAlPiUgCiAgZ2V0X2RpYW1ldGVyKCkgJT4lIAogIGxlbmd0aCgpCmBgYApUaGUgbGVuZ3RoIG9mIHRoZSBkaWFtZXRlciBvZiB0aGUgbmV0d29yayBpcyBzaXgsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGxvbmdlc3QgZGlzdGFuY2UgYmV0d2VlbiBvbmUgcGVyc29uIGFuZCBhbm90aGVyIGluIHRoZSBuZXR3b3JrIGlzIHRocm91Z2ggc2l4IHBlb3BsZS4gQ29uc2lkZXJpbmcgdGhlcmUncyBhIHRoZW9yeSB0aGF0IGVhY2ggcGVyc29uIGluIHRoZSB3b3JsZCBpcyBjb25uZWN0ZWQgYnkgbm8gbW9yZSB0aGFuIHNpeCBkZWdyZWVzIG9mIHNlcGFyYXRpb24sIHRoaXMgZGlhbWV0ZXIgdmFsdWUgc2hvd3MgaXQncyBhIGZhaXJseSBkaXNwZXJzZWQgbmV0d29yay4gCgo1LiBNdXRhdGUgdGhlIGZvbGxvd2luZyBpbnRvIHRoZSBub2RlcyBkYXRhOiBsYWJlbCwgdGl0bGUsIGRlZ3JlZSwgYW5kIHNldCB2YWx1ZSA9IGRlZ3JlZS4gCgpgYGB7cn0Kc2VwdDExX25vZGVzIDwtIHNlcHQxMV9ub2RlcyAlPiUgCiAgbXV0YXRlKGxhYmVsID0gbmFtZSkgJT4lIAogIG11dGF0ZSh0aXRsZSA9IG5hbWUpICU+JSAKICBtdXRhdGUoZGVncmVlID0gZGVncmVlKHNlcHQxMV9uZXR3b3JrKSkgJT4lIAogIG11dGF0ZSh2YWx1ZSA9IGRlZ3JlZSkKYGBgClVzaW5nIHRoZSBub2RlcyBkYXRhLCBJIGhhdmUgY3JlYXRlZCBuZXcgdmFyaWFibGVzIChsYWJlbCwgdGl0bGUsIGRlZ3JlZSBhbmQgdmFsdWUpLCB0byBoZWxwIHNlZSB0aGUgZGF0YSBtb3JlIHNwZWNpZmljYWxseS4KCjYuIE11dGF0ZSBiZXR3ZWVubmVzcyBpbnRvIHRoZSBsaW5rcyBkYXRhLCBhbmQgc2V0IGl0IHRvIHZhbHVlLiAgCgpgYGB7cn0Kc2VwdDExX2xpbmtzIDwtIHNlcHQxMV9saW5rcyAlPiUgCiAgbXV0YXRlKGJldHdlZW5uZXNzID0gZWRnZV9iZXR3ZWVubmVzcyhzZXB0MTFfbmV0d29yaykpICU+JSAKICBtdXRhdGUodmFsdWUgPSBiZXR3ZWVubmVzcykKYGBgClVzaW5nIHRoZSBsaW5rcyBkYXRhLCBJIGhhdmUgY3JlYXRlZCBhIG5ldyB2YXJpYWJsZSBmcm9tIHRoZSBiZXR3ZWVubmVzcyBvZiB0aGUgbGlua3MuIFRoaXMgd2lsbCBzaG93IGhvdyBjb25uZWN0ZWQgdGhlIGxpbmtzIGJldHdlZW4gcGVvcGxlIGFyZS4gCgo3LiBDcmVhdGUgYSBkaWFncmFtIHdpdGggdmlzTmV0d29yaywgd2l0aCBhIHRpdGxlIGFuZCBvcHRpb25zIHNldCBmb3IgYSBtZW51IGFuZCBoaWdobGlnaHROZWFyZXN0LiAKCmBgYHtyfQp2aXNOZXR3b3JrKHNlcHQxMV9ub2Rlcywgc2VwdDExX2xpbmtzLCBtYWluID0gIk5ldHdvcmsgb2YgU2VwdGVtYmVyIDExdGggVGVycm9yaXN0cyIpICU+JSAKICAgdmlzSWdyYXBoTGF5b3V0KGxheW91dCA9ICJsYXlvdXRfbmljZWx5IikgJT4lIAogIHZpc09wdGlvbnMoaGlnaGxpZ2h0TmVhcmVzdCA9IFQsIG5vZGVzSWRTZWxlY3Rpb24gPSBUKQpgYGAKSGVyZSBpcyBhIHZpc3VhbCBvZiB0aGUgU2VwdGVtYmVyIDExdGggdGVycm9yaXN0cy4gRWFjaCBncm91cCBpcyByZXByZXNlbnRlZCBieSBjb2xvci4gVGhlIHRoaWNrZXIgdGhlIGxpbmUsIHRoZSBzdHJvbmdlciB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHR3byBwZW9wbGUuIFRoZSBsYXJnZXIgdGhlIGRvdCBpcywgdGhlIG1vcmUgaW50ZXJjb25uZWN0ZWQgdGhlIHBlcnNvbiBpcywgdGhyb3VnaCBzdHJlbmd0aCBvZiBsaW5rcyBhbmQgbnVtYmVyIG9mIGNvbm5lY3Rpb25zLiBJdCBsb29rcyBhcyB0aG91Z2ggTW9oYW1lZCBBdHRhIGFuZCBNYXJ3YW4gQWwtU2hlaGhpIGFyZSB0aGUgdHdvICJkZW5zZXN0IiBjb25uZWN0aW9ucyBpbiB0aGUgbmV0d29yay4gCgo4LiBGaW5kIHRoZSBjb21tdW5pdGllcyBpbiB0aGUgbmV0d29yaywgbXV0YXRlIGEgZ3JvdXAgY29sdW1uIGluIHRoZSBub2RlcyBkYXRhLCBhbmQgY3JlYXRlIGFub3RoZXIgZGlhZ3JhbSBkaXNwbGF5aW5nIHRoZSBjb2xvcmVkIGdyb3Vwcy4KCmBgYHtyfQpzZXB0MTFfbmV0d29yayAlPiUgCiAgaW5mb21hcC5jb21tdW5pdHkoKSAlPiUgCiAgbWVtYmVyc2hpcCgpCgpzZXB0MTFfbm9kZXMgPC0gc2VwdDExX25vZGVzICU+JSAKICBtdXRhdGUoZ3JvdXAgPSBtZW1iZXJzaGlwKGluZm9tYXAuY29tbXVuaXR5KHNlcHQxMV9uZXR3b3JrKSkpCgp2aXNOZXR3b3JrKHNlcHQxMV9ub2Rlcywgc2VwdDExX2xpbmtzLCBtYWluID0gIk5ldHdvcmsgb2YgU2VwdGVtYmVyIDExdGggVGVycm9yaXN0cyIpICU+JSAKICB2aXNJZ3JhcGhMYXlvdXQobGF5b3V0ID0gImxheW91dF9uaWNlbHkiKSAlPiUgCiAgdmlzT3B0aW9ucyhoaWdobGlnaHROZWFyZXN0ID0gVCwgbm9kZXNJZFNlbGVjdGlvbiA9IFQsIHNlbGVjdGVkQnkgPSAiZ3JvdXAiKQpgYGAKSGVyZSBpcyBhbm90aGVyIHZpc3VhbCBvZiB0aGUgU2VwdGVtYmVyIDExdGggdGVycm9yaXN0IG5ldHdvcmssIGJ1dCB3aXRoIG9wdGlvbnMgdG8gcmVmaW5lIGl0IGJ5IHNlbGVjdGluZyBhIGdyb3VwIG9mIHRlcnJvcmlzdHMuIEVhY2ggY29sb3IgcmVwcmVzZW50cyBhIGdyb3VwIG9mIHRlcnJvcmlzdHMgY29ubmVjdGVkLCBhbmQgdGhlICJpZCIgaXMgdGhlIG5hbWUgb2YgdGhlIHRlcnJvcmlzdC4gVGhlcmUgYXJlIGEgZmV3IG1ham9yIGNvbm5lY3Rpb25zIG5vdGFibHkgaW4gZ3JvdXAgMSwgYnV0IGluIGdlbmVyYWwgaXQgaXMgYSBmYWlybHkgc3ByZWFkLW91dCBuZXR3b3JrIG9mIHBlb3BsZS4gCgo=