Edited at

Rでネットワーク分析。指定Twitterユーザーのフォロー関係を可視化する。

More than 5 years have passed since last update.


出力結果

RPlot.png


概要

RでTwitterユーザー間のフォロー/フォロワー関係を調べる。

手始めに、指定ユーザーのフォローリストを取得しグラフ化する。


作業

下記ページの作業を行った。

-> Mining Twitter with R - Tutorial 1: Building a corpus from Twitter data - YouTube

 ※英語注意。台詞は聞き取れなくてもOK。映像だけ見れば、何をやればいいかは分かる。


コード


twitnet.R

library(ROAuth)

library(twitteR)
library(igraph)

#【認証処理】

# 設定情報を取得
twit.consumerKey <- "<あなたのTwitter-API key>"
twit.consumerSecret <- "<あなたのTwitter-API secret>"

# 証明書を取得
setwd(tempdir())
cacert.name <- "cacert.pem"
download.file(url = "http://curl.haxx.se/ca/cacert.pem", destfile = cacert.name)
# OAuth認証
twit.cred<-OAuthFactory$new(consumerKey = twit.consumerKey,
consumerSecret = twit.consumerSecret,
requestURL = "https://api.twitter.com/oauth/request_token",
accessURL = "https://api.twitter.com/oauth/access_token",
authURL = "https://api.twitter.com/oauth/authorize")
# ※コマンド実行後、Web画面での認証を求められる。
# Web画面に表示されるPIN番号をコンソールで入力する。
twit.cred$handshake(cainfo = cacert.name)

# Twitter認証
registerTwitterOAuth(twit.cred)

#【本処理】

# 対象ユーザーの情報を取得
user <- getUser("nezuq", cainfo = cacert.name)
# 対象ユーザーのフォロー対象者の情報を取得
friends <- user$getFriends(cainfo = cacert.name)
friends.df <- twListToDF(friends)
friends.n <- nrow(friends)
users <- c(user, friends)
users.df <- twListToDF(users)
users.n <- nrow(users.df)
# グラフデータを作成
g.data <- cbind(1,2:users.n)
g <- graph.edgelist(g.data)
# グラフを表示
V(g)$name <- users.df$screenName
plot(g, vertex.label = V(g)$name, vertex.size = 10, vertex.label.cex = 0.6, margin = -0.4)



感想

申し訳ないが、TwitterのAPI key/API secretをWebでコピーする時に付いてくる半角スペースはNG。

そのせいで3時間くらい不要な調査を強いられたんだよなぁ。


参考ページ

-> Mining Twitter with R - Tutorial 1: Building a corpus from Twitter data - YouTube

-> R言語でTwitterを操作する : 実験ぶろぐ(仮)試供品

-> Package ‘twitteR’

-> ネットワーク分析をもうちょっと勉強 - でたぁっ 感動と失敗の備忘録