library(tidyverse)
library(DT)
library(igraph)
library(rtweet)
library(visNetwork)
library(graphTweets)            # This package turns twitter data into edge & node data
  1. The following is the last 500 tweets from each member of the Barstool list on Twitter.
bar_reporters <- lists_members(slug = "Barstool", owner_user = "TimConrod")
bar_reporters

bar_tweets <- get_timeline(bar_reporters$screen_name, n = 500)

Some members of the Barstool list on twitter include Call Her Daddy, Francis, and Trent as one can see from the above graph. There are 18 total members.

  1. The following is a network of mentions from the Barstool list on twitter.

# create network, including only members of our group
bar_mentions_network <- bar_tweets %>% 
  filter(mentions_screen_name %in% bar_reporters$screen_name) %>% 
  gt_edges(screen_name, mentions_screen_name, text) %>% 
  gt_graph


#get nodes
bar_mentions_nodes <- as_data_frame(bar_mentions_network, what = "vertices")


# get edges
bar_mentions_edges <- as_data_frame(bar_mentions_network, what = "edges")


# add info to nodes
bar_mentions_nodes <- bar_mentions_nodes %>% 
  mutate(id = name) %>% 
  mutate(label = name) %>% 
  mutate(title = name) %>% 
  mutate(degree = degree(bar_mentions_network)) %>% 
  mutate(value = degree)

# add info to edges
bar_mentions_edges <- bar_mentions_edges %>% 
  mutate(title = text)


# create the network diagram
visNetwork(bar_mentions_nodes, 
           bar_mentions_edges,
           main = "Barstool Twitter Mentions Network") %>% 
  visIgraphLayout(layout = "layout_nicely") %>% 
  visEdges(arrows = "to")
NA

The above graph shows the mentions network of the Barstool page on Twitter. One of the biggest nodes represents a user by the name of “stoolpresidente” with users “barstoolbigcat” and “barstooltrent” following close behind. There are some users with less connections including “holy_schnitt” and “callherdaddy”.

  1. The following is used to determine the count of nodes, edges, and density of the Barstool mentions network.
bar_mentions_network %>% 
  vcount()
[1] 18
bar_mentions_network %>% 
  ecount()
[1] 410
bar_mentions_network %>%
  edge_density()
[1] 1.339869

There are 18 vertices or nodes (individuals) and 410 edges (links) in the Barstool mentions network. The density of the Barstool mentions network is 1.34. Density refers to the total number of links divided by the total number of possible links within this network.

  1. The following table shows the names and degree of the Barstool mentions network.
bar_mentions_nodes %>%
  select(name, degree) %>%
  datatable()

From the information provided by the graph, one can see that the user “stoolpresidente” has the highest degree or connection totaling 135. The next highest is the user “barstooltrent” with 91 connections. The user with the least amount of connections or lowest degree is “holy_schnitt” with 2.

  1. The following graph shows the communities within the Barstool mentions network.
bar_mentions_nodes <- bar_mentions_nodes %>% 
  mutate(group = membership(infomap.community(bar_mentions_network)))
Modularity is implemented for undirected graphs only.
visNetwork(bar_mentions_nodes, bar_mentions_edges, main = "Barstool Twitter Mentions Network") %>% 
  visIgraphLayout(layout = "layout_nicely") %>% 
  visEdges(arrows = "to") %>%   
  visOptions(highlightNearest = T, nodesIdSelection = T, selectedBy = "group")
NA
NA

The above graph shows that there are 6 communities within the Barstool mentions network. The user “callherdaddy” seems to be a community by itself. One of the more popular members, “studentpresidente”, is in a community with users such as “barstoolsports”, “largrebarstool”, “feitsbarstool”, and more.

LS0tCnRpdGxlOiAiR3JhcGggVHdlZXRzIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShEVCkKbGlicmFyeShpZ3JhcGgpCmxpYnJhcnkocnR3ZWV0KQpsaWJyYXJ5KHZpc05ldHdvcmspCmxpYnJhcnkoZ3JhcGhUd2VldHMpICAgICAgICAgICAgIyBUaGlzIHBhY2thZ2UgdHVybnMgdHdpdHRlciBkYXRhIGludG8gZWRnZSAmIG5vZGUgZGF0YQoKYGBgCgoxLiBUaGUgZm9sbG93aW5nIGlzIHRoZSBsYXN0IDUwMCB0d2VldHMgZnJvbSBlYWNoIG1lbWJlciBvZiB0aGUgQmFyc3Rvb2wgbGlzdCBvbiBUd2l0dGVyLiAKYGBge3J9CmJhcl9yZXBvcnRlcnMgPC0gbGlzdHNfbWVtYmVycyhzbHVnID0gIkJhcnN0b29sIiwgb3duZXJfdXNlciA9ICJUaW1Db25yb2QiKQpiYXJfcmVwb3J0ZXJzCgpiYXJfdHdlZXRzIDwtIGdldF90aW1lbGluZShiYXJfcmVwb3J0ZXJzJHNjcmVlbl9uYW1lLCBuID0gNTAwKQpgYGAKU29tZSBtZW1iZXJzIG9mIHRoZSBCYXJzdG9vbCBsaXN0IG9uIHR3aXR0ZXIgaW5jbHVkZSBDYWxsIEhlciBEYWRkeSwgRnJhbmNpcywgYW5kIFRyZW50IGFzIG9uZSBjYW4gc2VlIGZyb20gdGhlIGFib3ZlIGdyYXBoLiBUaGVyZSBhcmUgMTggdG90YWwgbWVtYmVycy4gCgoyLiBUaGUgZm9sbG93aW5nIGlzIGEgbmV0d29yayBvZiBtZW50aW9ucyBmcm9tIHRoZSBCYXJzdG9vbCBsaXN0IG9uIHR3aXR0ZXIuCmBgYHtyfQoKIyBjcmVhdGUgbmV0d29yaywgaW5jbHVkaW5nIG9ubHkgbWVtYmVycyBvZiBvdXIgZ3JvdXAKYmFyX21lbnRpb25zX25ldHdvcmsgPC0gYmFyX3R3ZWV0cyAlPiUgCiAgZmlsdGVyKG1lbnRpb25zX3NjcmVlbl9uYW1lICVpbiUgYmFyX3JlcG9ydGVycyRzY3JlZW5fbmFtZSkgJT4lIAogIGd0X2VkZ2VzKHNjcmVlbl9uYW1lLCBtZW50aW9uc19zY3JlZW5fbmFtZSwgdGV4dCkgJT4lIAogIGd0X2dyYXBoCgoKI2dldCBub2RlcwpiYXJfbWVudGlvbnNfbm9kZXMgPC0gYXNfZGF0YV9mcmFtZShiYXJfbWVudGlvbnNfbmV0d29yaywgd2hhdCA9ICJ2ZXJ0aWNlcyIpCgoKIyBnZXQgZWRnZXMKYmFyX21lbnRpb25zX2VkZ2VzIDwtIGFzX2RhdGFfZnJhbWUoYmFyX21lbnRpb25zX25ldHdvcmssIHdoYXQgPSAiZWRnZXMiKQoKCiMgYWRkIGluZm8gdG8gbm9kZXMKYmFyX21lbnRpb25zX25vZGVzIDwtIGJhcl9tZW50aW9uc19ub2RlcyAlPiUgCiAgbXV0YXRlKGlkID0gbmFtZSkgJT4lIAogIG11dGF0ZShsYWJlbCA9IG5hbWUpICU+JSAKICBtdXRhdGUodGl0bGUgPSBuYW1lKSAlPiUgCiAgbXV0YXRlKGRlZ3JlZSA9IGRlZ3JlZShiYXJfbWVudGlvbnNfbmV0d29yaykpICU+JSAKICBtdXRhdGUodmFsdWUgPSBkZWdyZWUpCgojIGFkZCBpbmZvIHRvIGVkZ2VzCmJhcl9tZW50aW9uc19lZGdlcyA8LSBiYXJfbWVudGlvbnNfZWRnZXMgJT4lIAogIG11dGF0ZSh0aXRsZSA9IHRleHQpCgoKIyBjcmVhdGUgdGhlIG5ldHdvcmsgZGlhZ3JhbQp2aXNOZXR3b3JrKGJhcl9tZW50aW9uc19ub2RlcywgCiAgICAgICAgICAgYmFyX21lbnRpb25zX2VkZ2VzLAogICAgICAgICAgIG1haW4gPSAiQmFyc3Rvb2wgVHdpdHRlciBNZW50aW9ucyBOZXR3b3JrIikgJT4lIAogIHZpc0lncmFwaExheW91dChsYXlvdXQgPSAibGF5b3V0X25pY2VseSIpICU+JSAKICB2aXNFZGdlcyhhcnJvd3MgPSAidG8iKQoKYGBgClRoZSBhYm92ZSBncmFwaCBzaG93cyB0aGUgbWVudGlvbnMgbmV0d29yayBvZiB0aGUgQmFyc3Rvb2wgcGFnZSBvbiBUd2l0dGVyLiBPbmUgb2YgdGhlIGJpZ2dlc3Qgbm9kZXMgcmVwcmVzZW50cyBhIHVzZXIgYnkgdGhlIG5hbWUgb2YgInN0b29scHJlc2lkZW50ZSIgd2l0aCB1c2VycyAiYmFyc3Rvb2xiaWdjYXQiIGFuZCAiYmFyc3Rvb2x0cmVudCIgZm9sbG93aW5nIGNsb3NlIGJlaGluZC4gVGhlcmUgYXJlIHNvbWUgdXNlcnMgd2l0aCBsZXNzIGNvbm5lY3Rpb25zIGluY2x1ZGluZyAiaG9seV9zY2huaXR0IiBhbmQgImNhbGxoZXJkYWRkeSIuIAoKMy4gVGhlIGZvbGxvd2luZyBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgY291bnQgb2Ygbm9kZXMsIGVkZ2VzLCBhbmQgZGVuc2l0eSBvZiB0aGUgQmFyc3Rvb2wgbWVudGlvbnMgbmV0d29yay4KYGBge3J9CmJhcl9tZW50aW9uc19uZXR3b3JrICU+JSAKICB2Y291bnQoKQpgYGAKYGBge3J9CmJhcl9tZW50aW9uc19uZXR3b3JrICU+JSAKICBlY291bnQoKQpgYGAKYGBge3J9CmJhcl9tZW50aW9uc19uZXR3b3JrICU+JQogIGVkZ2VfZGVuc2l0eSgpCmBgYApUaGVyZSBhcmUgMTggdmVydGljZXMgb3Igbm9kZXMgKGluZGl2aWR1YWxzKSBhbmQgNDEwIGVkZ2VzIChsaW5rcykgaW4gdGhlIEJhcnN0b29sIG1lbnRpb25zIG5ldHdvcmsuIFRoZSBkZW5zaXR5IG9mIHRoZSBCYXJzdG9vbCBtZW50aW9ucyBuZXR3b3JrIGlzIDEuMzQuIERlbnNpdHkgcmVmZXJzIHRvIHRoZSB0b3RhbCBudW1iZXIgb2YgbGlua3MgZGl2aWRlZCBieSB0aGUgdG90YWwgbnVtYmVyIG9mIHBvc3NpYmxlIGxpbmtzIHdpdGhpbiB0aGlzIG5ldHdvcmsuIAoKNC4gVGhlIGZvbGxvd2luZyB0YWJsZSBzaG93cyB0aGUgbmFtZXMgYW5kIGRlZ3JlZSBvZiB0aGUgQmFyc3Rvb2wgbWVudGlvbnMgbmV0d29yay4gIApgYGB7cn0KYmFyX21lbnRpb25zX25vZGVzICU+JQogIHNlbGVjdChuYW1lLCBkZWdyZWUpICU+JQogIGRhdGF0YWJsZSgpCmBgYApGcm9tIHRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSB0aGUgZ3JhcGgsIG9uZSBjYW4gc2VlIHRoYXQgdGhlIHVzZXIgInN0b29scHJlc2lkZW50ZSIgaGFzIHRoZSBoaWdoZXN0IGRlZ3JlZSBvciBjb25uZWN0aW9uIHRvdGFsaW5nIDEzNS4gVGhlIG5leHQgaGlnaGVzdCBpcyB0aGUgdXNlciAiYmFyc3Rvb2x0cmVudCIgd2l0aCA5MSBjb25uZWN0aW9ucy4gVGhlIHVzZXIgd2l0aCB0aGUgbGVhc3QgYW1vdW50IG9mIGNvbm5lY3Rpb25zIG9yIGxvd2VzdCBkZWdyZWUgaXMgImhvbHlfc2Nobml0dCIgd2l0aCAyLiAKCjUuIFRoZSBmb2xsb3dpbmcgZ3JhcGggc2hvd3MgdGhlIGNvbW11bml0aWVzIHdpdGhpbiB0aGUgQmFyc3Rvb2wgbWVudGlvbnMgbmV0d29yay4gIApgYGB7cn0KYmFyX21lbnRpb25zX25vZGVzIDwtIGJhcl9tZW50aW9uc19ub2RlcyAlPiUgCiAgbXV0YXRlKGdyb3VwID0gbWVtYmVyc2hpcChpbmZvbWFwLmNvbW11bml0eShiYXJfbWVudGlvbnNfbmV0d29yaykpKQoKdmlzTmV0d29yayhiYXJfbWVudGlvbnNfbm9kZXMsIGJhcl9tZW50aW9uc19lZGdlcywgbWFpbiA9ICJCYXJzdG9vbCBUd2l0dGVyIE1lbnRpb25zIE5ldHdvcmsiKSAlPiUgCiAgdmlzSWdyYXBoTGF5b3V0KGxheW91dCA9ICJsYXlvdXRfbmljZWx5IikgJT4lIAogIHZpc0VkZ2VzKGFycm93cyA9ICJ0byIpICU+JSAgIAogIHZpc09wdGlvbnMoaGlnaGxpZ2h0TmVhcmVzdCA9IFQsIG5vZGVzSWRTZWxlY3Rpb24gPSBULCBzZWxlY3RlZEJ5ID0gImdyb3VwIikKCgpgYGAKVGhlIGFib3ZlIGdyYXBoIHNob3dzIHRoYXQgdGhlcmUgYXJlIDYgY29tbXVuaXRpZXMgd2l0aGluIHRoZSBCYXJzdG9vbCBtZW50aW9ucyBuZXR3b3JrLiBUaGUgdXNlciAiY2FsbGhlcmRhZGR5IiBzZWVtcyB0byBiZSBhIGNvbW11bml0eSBieSBpdHNlbGYuIE9uZSBvZiB0aGUgbW9yZSBwb3B1bGFyIG1lbWJlcnMsICJzdHVkZW50cHJlc2lkZW50ZSIsIGlzIGluIGEgY29tbXVuaXR5IHdpdGggdXNlcnMgc3VjaCBhcyAiYmFyc3Rvb2xzcG9ydHMiLCAibGFyZ3JlYmFyc3Rvb2wiLCAiZmVpdHNiYXJzdG9vbCIsIGFuZCBtb3JlLiAKCg==