#概要
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’
-> ネットワーク分析をもうちょっと勉強 - でたぁっ 感動と失敗の備忘録