library(tidyverse)
Registered S3 methods overwritten by 'dbplyr':
method from
print.tbl_lazy
print.tbl_sql
-- Attaching packages ------------------------------------------------- tidyverse 1.3.0 --
v ggplot2 3.3.3 v purrr 0.3.4
v tibble 3.1.0 v dplyr 1.0.4
v tidyr 1.1.2 v stringr 1.4.0
v readr 1.4.0 v forcats 0.5.1
-- Conflicts ---------------------------------------------------- tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag() masks stats::lag()
library(DT)
Registered S3 method overwritten by 'htmlwidgets':
method from
print.htmlwidget tools:rstudio
library(igraph)
Attaching package: 㤼㸱igraph㤼㸲
The following objects are masked from 㤼㸱package:dplyr㤼㸲:
as_data_frame, groups, union
The following objects are masked from 㤼㸱package:purrr㤼㸲:
compose, simplify
The following object is masked from 㤼㸱package:tidyr㤼㸲:
crossing
The following object is masked from 㤼㸱package:tibble㤼㸲:
as_data_frame
The following objects are masked from 㤼㸱package:stats㤼㸲:
decompose, spectrum
The following object is masked from 㤼㸱package:base㤼㸲:
union
library(rtweet)
Attaching package: 㤼㸱rtweet㤼㸲
The following object is masked from 㤼㸱package:purrr㤼㸲:
flatten
library(visNetwork)
library(graphTweets) # This package turns twitter data into edge & node data
help('graphTweets') for examples
Attaching package: 㤼㸱graphTweets㤼㸲
The following object is masked from 㤼㸱package:igraph㤼㸲:
%<-%
In this analysis, we will look at who our world leaders are communicating with on Twitter and what they are retweeting about.
leaders <- lists_members(slug = "world-leaders", owner_user = "TwitterGov")
leaders_tweets <- get_timeline(leaders$screen_name, n = 300)
leaders_retweets_network <- leaders_tweets %>%
filter(retweet_screen_name %in% leaders$screen_name) %>%
gt_edges(screen_name, retweet_screen_name, text) %>%
gt_graph()
leaders_retweets_nodes <- as_data_frame(leaders_retweets_network, what = "vertices")
leaders_retweets_nodes <- leaders_retweets_nodes %>%
mutate(id = name) %>%
mutate(label = name) %>%
mutate(title = name) %>%
mutate(degree = degree(leaders_retweets_network)) %>%
mutate(value = degree)
leaders_retweets_edges <- as_data_frame(leaders_retweets_network, what = "edges")
leaders_retweets_edges <- leaders_retweets_edges %>%
mutate(title = text)
visNetwork(leaders_retweets_nodes, leaders_retweets_edges, main = "World Leaders Retweet Network") %>%
visIgraphLayout(layout = "layout_nicely") %>%
visEdges(arrows = "to")
As you can see from the graph above, our world leaders appear to not be very well connected to one another. The density of the network also indicates this.
leaders_retweets_network %>%
edge_density()
[1] 0.06050145
leaders_retweets_network %>%
vcount()
[1] 129
leaders_retweets_network %>%
ecount()
[1] 999
Below is a table that shows how many connections the users have. Aside from the top three, the table indicates our world leaders are not very well connected on Twitter. For instance, former Vice President Mike Pence has second most connections behind twitter user christophedabir and each of them have only a little over 300.
leaders_retweets_nodes %>%
select(name, degree) %>%
datatable()
NA
Finally we will look at the networks of our world leaders. In the graph below it shows over thirty networks, however, they are not well connected. This graph highlights the lack of connectivity among our world leaders.
leaders_retweets_nodes <- leaders_retweets_nodes %>%
mutate(group = membership(infomap.community(leaders_retweets_network)))
Modularity is implemented for undirected graphs only.
visNetwork(leaders_retweets_nodes, leaders_retweets_edges, main = "World Leaders Retweet Network") %>%
visIgraphLayout(layout = "layout_nicely") %>%
visEdges(arrows = "to") %>%
visOptions(highlightNearest = T, nodesIdSelection = T, selectedBy = "group")
NA