library(tidyverse)
library(ggplot2)
library(DT)
library(igraph)
library(rtweet)
library(visNetwork)
library(graphTweets)
library(dplyr)
token <- create_token(
app = "US-Senator",
consumer_key = "D38ITwMk7n9uMGjlPCz3XWTHV",
consumer_secret = "EK2O62bab0W4fJ9Gj97uiEfE4Eeygj0iA6E50vsg40U1BZp6JT",
access_token = "1226982887783690241-3qqlXFAtNZq2KXBu0nIp1XXwKcclvo" ,
access_secret = "8eLnNPnMfYU0pacVldSv0xjUtiyIQVqatuw1f0GJQ2jSh")
Saving auth to '/cloud/home/r454505/.config/R/rtweet/create_token.rds'
get_token()
<Token>
<oauth_endpoint>
request: https://api.twitter.com/oauth/request_token
authorize: https://api.twitter.com/oauth/authenticate
access: https://api.twitter.com/oauth/access_token
<oauth_app> rtweet
key: D38ITwMk7n9uMGjlPCz3XWTHV
secret: <hidden>
<credentials> oauth_token, oauth_token_secret
---
USsenate_tweets <- get_timeline("US senators", n = 200)
This collects a list of US Senators and thier last 200 tweets.
USsenate_retweet_network <- USSenate_tweets %>%
gt_edges(screen_name, retweet_screen_name, text) %>%
gt_graph()
USsenate_retweet_nodes <- as_data_frame(USsenate_retweet_network, what = "vertices")
USsenate_retweet_nodes <- USsenate_retweet_nodes %>%
mutate(id = name) %>%
mutate(label = name) %>%
mutate(title = name) %>%
mutate(degree = degree(USsenate_retweet_network)) %>%
mutate(value = degree)
USsenate_retweet_edges <- as_data_frame(USsenate_retweet_network, what = "edges")
USsenate_retweet_edges <- USsenate_retweet_edges %>%
mutate(title = text)
visNetwork(USsenate_retweet_nodes, USsenate_retweet_edges, main = "US Senate officials retweet network") %>%
visIgraphLayout(layout = "layout_nicely") %>%
visEdges(arrows = "to")
Retweet network of US Senate
USsenate_retweet_network %>%
vcount()
[1] 854
USsenate_retweet_network %>%
ecount()
[1] 817
USsenate_retweet_network %>%
edge_density()
[1] 0.001121541
USsenate_retweet_nodes %>%
select(name, degree) %>%
datatable()
USsenate <- lists_members(slug = "us-senate", owner_user = "TwitterGov")
USsenate_tweets <- get_timeline(USsenate$screen_name, n = 180)
USsenate_retweets_network <- USSenate_tweets %>%
filter(retweet_screen_name %in% USSenate_tweets$screen_name) %>%
gt_edges(screen_name, retweet_screen_name, text) %>%
gt_graph()
USsenate_retweets_nodes <- as_data_frame(USsenate_retweets_network, what = "vertices")
USsenate_retweets_nodes <- USsenate_retweets_nodes %>%
mutate(id = name) %>%
mutate(label = name) %>%
mutate(title = name) %>%
mutate(degree = degree(USsenate_retweets_network)) %>%
mutate(value = degree)
USsenate_retweets_edges <- as_data_frame(USsenate_retweets_network, what = "edges")
USsenate_retweets_edges <- USsenate_retweets_edges %>%
mutate(title = text)
visNetwork(USsenate_retweets_nodes, USsenate_retweets_edges, main = "US Senate officials retweet network") %>%
visIgraphLayout(layout = "layout_nicely") %>%
visEdges(arrows = "to")
This is a network diagram of US Senate officials retweets with
communities. This includes the option to select by group and each group
is represented by diffferent colors.
USsenate_retweets_nodes <- USsenate_retweets_nodes %>%
mutate(group = membership(infomap.community(USsenate_retweets_network)))
visNetwork(USsenate_retweets_nodes, USsenate_retweets_edges, main = "US Senate officials retweet network") %>%
visIgraphLayout(layout = "layout_nicely") %>%
visEdges(arrows = "to") %>%
visOptions(highlightNearest = T, nodesIdSelection = T, selectedBy = "group")
This is a network diagram of US Senate officials retweets with
communities. This includes the option to select by group and each group
is represented by diffferent colors.
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICBmaWdfY2FwdGlvbjogdHJ1ZQogIHBkZl9kb2N1bWVudDogZGVmYXVsdAogIGh0bWxfZG9jdW1lbnQ6CiAgICBkZl9wcmludDogcGFnZWQKLS0tCgoKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoRFQpCmxpYnJhcnkoaWdyYXBoKQpsaWJyYXJ5KHJ0d2VldCkKbGlicmFyeSh2aXNOZXR3b3JrKQpsaWJyYXJ5KGdyYXBoVHdlZXRzKSAgCmxpYnJhcnkoZHBseXIpCmBgYAoKCgpgYGB7cn0KdG9rZW4gPC0gY3JlYXRlX3Rva2VuKAogIGFwcCA9ICJVUy1TZW5hdG9yIiwKICBjb25zdW1lcl9rZXkgPSAiRDM4SVR3TWs3bjl1TUdqbFBDejNYV1RIViIsCiAgICAgICAgICAgICAgICAgIGNvbnN1bWVyX3NlY3JldCA9ICJFSzJPNjJiYWIwVzRmSjlHajk3dWlFZkU0RWV5Z2owaUE2RTUwdnNnNDBVMUJacDZKVCIsCiAgICAgICAgICAgICAgICAgIGFjY2Vzc190b2tlbiA9ICIxMjI2OTgyODg3NzgzNjkwMjQxLTNxcWxYRkF0TlpxMktYQnUwbklwMVhYd0tjY2x2byIgLAogICAgICAgICAgICAgICAgICBhY2Nlc3Nfc2VjcmV0ID0gIjhlTG5OUG5NZllVMHBhY1ZsZFN2MHhqVXRpeUlRVnFhdHV3MWYwR0pRMmpTaCIpCgpnZXRfdG9rZW4oKSAgICAgICAgCmBgYAoKCgpgYGB7cn0KVVNzZW5hdGVfdHdlZXRzIDwtIGdldF90aW1lbGluZSgiVVMgc2VuYXRvcnMiLCBuID0gMjAwKQpgYGAKClRoaXMgY29sbGVjdHMgYSBsaXN0IG9mIFVTIFNlbmF0b3JzIGFuZCB0aGllciBsYXN0IDIwMCB0d2VldHMuCgoKYGBge3J9ClVTc2VuYXRlX3JldHdlZXRfbmV0d29yayA8LSBVU1NlbmF0ZV90d2VldHMgJT4lIAogIGd0X2VkZ2VzKHNjcmVlbl9uYW1lLCByZXR3ZWV0X3NjcmVlbl9uYW1lLCB0ZXh0KSAlPiUgCiAgZ3RfZ3JhcGgoKQoKClVTc2VuYXRlX3JldHdlZXRfbm9kZXMgPC0gYXNfZGF0YV9mcmFtZShVU3NlbmF0ZV9yZXR3ZWV0X25ldHdvcmssIHdoYXQgPSAidmVydGljZXMiKQoKClVTc2VuYXRlX3JldHdlZXRfbm9kZXMgPC0gVVNzZW5hdGVfcmV0d2VldF9ub2RlcyAlPiUgCiAgbXV0YXRlKGlkID0gbmFtZSkgJT4lIAogIG11dGF0ZShsYWJlbCA9IG5hbWUpICU+JSAKICBtdXRhdGUodGl0bGUgPSBuYW1lKSAlPiUgCiAgbXV0YXRlKGRlZ3JlZSA9IGRlZ3JlZShVU3NlbmF0ZV9yZXR3ZWV0X25ldHdvcmspKSAlPiUgCiAgbXV0YXRlKHZhbHVlID0gZGVncmVlKQoKClVTc2VuYXRlX3JldHdlZXRfZWRnZXMgPC0gYXNfZGF0YV9mcmFtZShVU3NlbmF0ZV9yZXR3ZWV0X25ldHdvcmssIHdoYXQgPSAiZWRnZXMiKQoKClVTc2VuYXRlX3JldHdlZXRfZWRnZXMgPC0gVVNzZW5hdGVfcmV0d2VldF9lZGdlcyAlPiUgCiAgbXV0YXRlKHRpdGxlID0gdGV4dCkKCgp2aXNOZXR3b3JrKFVTc2VuYXRlX3JldHdlZXRfbm9kZXMsIFVTc2VuYXRlX3JldHdlZXRfZWRnZXMsIG1haW4gPSAiVVMgU2VuYXRlIG9mZmljaWFscyByZXR3ZWV0IG5ldHdvcmsiKSAlPiUgCiAgdmlzSWdyYXBoTGF5b3V0KGxheW91dCA9ICJsYXlvdXRfbmljZWx5IikgJT4lIAogIHZpc0VkZ2VzKGFycm93cyA9ICJ0byIpCmBgYAoKUmV0d2VldCBuZXR3b3JrIG9mIFVTIFNlbmF0ZQoKCmBgYHtyfQpVU3NlbmF0ZV9yZXR3ZWV0X25ldHdvcmsgJT4lIAogIHZjb3VudCgpCmBgYAoKCmBgYHtyfQpVU3NlbmF0ZV9yZXR3ZWV0X25ldHdvcmsgJT4lIAogIGVjb3VudCgpCmBgYAoKCmBgYHtyfQpVU3NlbmF0ZV9yZXR3ZWV0X25ldHdvcmsgJT4lCiAgZWRnZV9kZW5zaXR5KCkKYGBgCgoKYGBge3J9ClVTc2VuYXRlX3JldHdlZXRfbm9kZXMgJT4lCiAgc2VsZWN0KG5hbWUsIGRlZ3JlZSkgJT4lCiAgZGF0YXRhYmxlKCkKYGBgCgoKYGBge1J9ClVTc2VuYXRlIDwtIGxpc3RzX21lbWJlcnMoc2x1ZyA9ICJ1cy1zZW5hdGUiLCBvd25lcl91c2VyID0gIlR3aXR0ZXJHb3YiKQoKVVNzZW5hdGVfdHdlZXRzIDwtIGdldF90aW1lbGluZShVU3NlbmF0ZSRzY3JlZW5fbmFtZSwgbiA9IDE4MCkKYGBgCgoKYGBge3Igd2FybmluZz1GQUxTRX0KVVNzZW5hdGVfcmV0d2VldHNfbmV0d29yayA8LSBVU1NlbmF0ZV90d2VldHMgJT4lIAogIGZpbHRlcihyZXR3ZWV0X3NjcmVlbl9uYW1lICVpbiUgVVNTZW5hdGVfdHdlZXRzJHNjcmVlbl9uYW1lKSAlPiUgCiAgZ3RfZWRnZXMoc2NyZWVuX25hbWUsIHJldHdlZXRfc2NyZWVuX25hbWUsIHRleHQpICU+JQogIGd0X2dyYXBoKCkKClVTc2VuYXRlX3JldHdlZXRzX25vZGVzIDwtIGFzX2RhdGFfZnJhbWUoVVNzZW5hdGVfcmV0d2VldHNfbmV0d29yaywgd2hhdCA9ICJ2ZXJ0aWNlcyIpCgoKVVNzZW5hdGVfcmV0d2VldHNfbm9kZXMgPC0gVVNzZW5hdGVfcmV0d2VldHNfbm9kZXMgJT4lIAogIG11dGF0ZShpZCA9IG5hbWUpICU+JSAKICBtdXRhdGUobGFiZWwgPSBuYW1lKSAlPiUgCiAgbXV0YXRlKHRpdGxlID0gbmFtZSkgJT4lIAogIG11dGF0ZShkZWdyZWUgPSBkZWdyZWUoVVNzZW5hdGVfcmV0d2VldHNfbmV0d29yaykpICU+JSAKICBtdXRhdGUodmFsdWUgPSBkZWdyZWUpCgoKVVNzZW5hdGVfcmV0d2VldHNfZWRnZXMgPC0gYXNfZGF0YV9mcmFtZShVU3NlbmF0ZV9yZXR3ZWV0c19uZXR3b3JrLCB3aGF0ID0gImVkZ2VzIikKCgpVU3NlbmF0ZV9yZXR3ZWV0c19lZGdlcyA8LSBVU3NlbmF0ZV9yZXR3ZWV0c19lZGdlcyAlPiUgCiAgbXV0YXRlKHRpdGxlID0gdGV4dCkKCgp2aXNOZXR3b3JrKFVTc2VuYXRlX3JldHdlZXRzX25vZGVzLCBVU3NlbmF0ZV9yZXR3ZWV0c19lZGdlcywgbWFpbiA9ICJVUyBTZW5hdGUgb2ZmaWNpYWxzIHJldHdlZXQgbmV0d29yayIpICU+JSAKICB2aXNJZ3JhcGhMYXlvdXQobGF5b3V0ID0gImxheW91dF9uaWNlbHkiKSAlPiUgCiAgdmlzRWRnZXMoYXJyb3dzID0gInRvIikKYGBgCgpUaGlzIGlzIGEgbmV0d29yayBkaWFncmFtIG9mIFVTIFNlbmF0ZSBvZmZpY2lhbHMgcmV0d2VldHMgd2l0aCBjb21tdW5pdGllcy4gVGhpcyBpbmNsdWRlcyB0aGUgb3B0aW9uIHRvIHNlbGVjdCBieSBncm91cCBhbmQgZWFjaCBncm91cCBpcyByZXByZXNlbnRlZCBieSBkaWZmZmVyZW50IGNvbG9ycy4KCgpgYGB7cn0KVVNzZW5hdGVfcmV0d2VldHNfbm9kZXMgPC0gVVNzZW5hdGVfcmV0d2VldHNfbm9kZXMgJT4lIAogIG11dGF0ZShncm91cCA9IG1lbWJlcnNoaXAoaW5mb21hcC5jb21tdW5pdHkoVVNzZW5hdGVfcmV0d2VldHNfbmV0d29yaykpKQpgYGAKCgpgYGB7ciB3YXJuaW5nPUZBTFNFfQp2aXNOZXR3b3JrKFVTc2VuYXRlX3JldHdlZXRzX25vZGVzLCBVU3NlbmF0ZV9yZXR3ZWV0c19lZGdlcywgbWFpbiA9ICJVUyBTZW5hdGUgb2ZmaWNpYWxzIHJldHdlZXQgbmV0d29yayIpICU+JSAKICB2aXNJZ3JhcGhMYXlvdXQobGF5b3V0ID0gImxheW91dF9uaWNlbHkiKSAlPiUgCiAgdmlzRWRnZXMoYXJyb3dzID0gInRvIikgJT4lICAgCiAgdmlzT3B0aW9ucyhoaWdobGlnaHROZWFyZXN0ID0gVCwgbm9kZXNJZFNlbGVjdGlvbiA9IFQsIHNlbGVjdGVkQnkgPSAiZ3JvdXAiKQpgYGAKClRoaXMgaXMgYSBuZXR3b3JrIGRpYWdyYW0gb2YgVVMgU2VuYXRlIG9mZmljaWFscyByZXR3ZWV0cyB3aXRoIGNvbW11bml0aWVzLiBUaGlzIGluY2x1ZGVzIHRoZSBvcHRpb24gdG8gc2VsZWN0IGJ5IGdyb3VwIGFuZCBlYWNoIGdyb3VwIGlzIHJlcHJlc2VudGVkIGJ5IGRpZmZmZXJlbnQgY29sb3JzLgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo=