(2021/05/31追記)
M1macだとうまいこと入れられないかもしれない。
rtweetは普通に入る。
#はじめに
ツイッターのデータを使ったネットワーク分析って最近論文とかも出てきてるけどグラフデータ準備するのめんどくさいなあって思ってたらパッケージが開発されてた(当然と言えば当然)
github:https://twinetverse.john-coene.com/
チュートリアル:https://twinetbook.john-coene.com/index.html
#twinetverse
###インストール
CRAN経由では落とせないぽいのでgithub経由で
devtools::install_github("JohnCoene/twinetverse") # github
devtools::install_bitbucket("JohnCoene/twinetverse") # bitbucket
これどうもrtweet
/ graphTweets
/ sigmajs
も入ってるぽいのでこれ一本で分析ができます!みたいなことらしい。
###ツイートの取得
この辺はrtweet
なので細かいところは適当にやってしまってくだせえ。
twinetverse
のチュートリアルだと自分のトークンを設定することになってるけどrtweet
はもうアプリ認証経由でツイッターAPIにアクセスできるようになってるので必要ないと思う。
差し当たり大統領選の不正についてのツイートでも取得してみましょう。クエリはツイッターAPI準拠。
tweets <- search_tweets(q = "大統領 AND 不正 filter:retweets",
n=500, include_rts = TRUE)
###グラフの作成
取得したツイートデータからグラフデータを作成。試しに取得したデータからリツイートネットワークを作ってみます。
net <- tweets %>% #グラフデータの作成
gt_edges(screen_name, mentions_screen_name) %>% #エッジデータを取得
gt_nodes() %>% #ノードデータの取得
gt_collect() # collect
lapply(net, class)
#エッジとノードを取得
c(edges, nodes) %<-% net
##edges <- net$edges
##nodes <- net$nodes と同じ意味を持つ
#sigmajsデータに変換
nodes <- nodes2sg(nodes)
edges <- edges2sg(edges)
sigmajs() %>%
sg_nodes(nodes, id, size) %>% #ノードの付加
sg_edges(edges, id, source, target) #エッジを追加
sigmajs
はどうもggplot
と似たような書き方ぽい?
ノードとエッジを書き加えていくイメージ
これだとこんな感じになるけど見た目がよくないので諸々を調整していく。
sigmajs() %>%
sg_nodes(nodes, id, label, size) %>%
sg_edges(edges, id, source, target) %>%
sg_layout(layout = igraph::layout_components) %>%
sg_cluster(
colors = c(
"#0084b4",
"#00aced",
"#1dcaff",
"#c0deed"
)
) %>%
sg_settings(
minNodeSize = 1,
maxNodeSize = 2.5,
edgeColor = "default",
defaultEdgeColor = "#d3d3d3"
)
いろいろ調整するとこんな感じ。めっちゃみやすくなった。
他にもいろいろあるらしいのでチュートリアル読んで頑張っていきたい。